Example 1: Defining storage maps for a multifile database
This example shows the definition of storage maps for a multifile
database. The tables named in the CREATE STORAGE MAP statements
have the same definitions as those in the sample database.
See the CREATE STORAGE_AREA clause for an example of a CREATE
DATABASE statement with CREATE STORAGE AREA clauses that create
the storage areas referred to in this example.
SQL> -- Declare the database as the default:
SQL> ATTACH 'FILENAME multifile_example';
SQL> --
SQL> CREATE STORAGE MAP EMPLOYEE_MAP FOR EMPLOYEES
cont> STORE USING (EMPLOYEE_ID)
cont> IN EMPID_LOW WITH LIMIT OF ('00200')
cont> IN EMPID_MID WITH LIMIT OF ('00500')
cont> OTHERWISE IN EMPID_OVER;
SQL> --
SQL> CREATE STORAGE MAP RESUME_MAP
cont> STORE LISTS IN EMP_INFO FOR (TABLE1, TABLE2, TABLE3)
cont> IN RDB$SYSTEM;
SQL> --
SQL> CREATE STORAGE MAP JOB_HISTORY_MAP FOR JOB_HISTORY
cont> STORE IN HISTORIES;
SQL> --
SQL> CREATE STORAGE MAP SALARY_HISTORY_MAP FOR SALARY_HISTORY
cont> STORE IN HISTORIES;
SQL> --
SQL> CREATE STORAGE MAP JOBS_MAP FOR JOBS
cont> STORE IN CODES;
SQL> --
SQL> CREATE STORAGE MAP DEPARTMENTS_MAP FOR DEPARTMENTS
cont> STORE IN CODES;
SQL> --
SQL> CREATE STORAGE MAP COLLEGES_MAP FOR COLLEGES
cont> STORE IN CODES;
SQL> --
SQL> CREATE STORAGE MAP DEGREES_MAP FOR DEGREES
cont> STORE IN EMP_INFO;
SQL> --
SQL> CREATE STORAGE MAP WORK_STATUS_MAP FOR WORK_STATUS
cont> STORE IN HISTORIES;
SQL> --
SQL> --
SQL> -COMMIT;
SQL> --
Example 2: Defining storage maps that place and override
thresholds on uniform storage areas
SQL> CREATE DATABASE FILENAME birdlist
cont> CREATE STORAGE AREA AREA1
cont> CREATE STORAGE AREA AREA2
cont> CREATE STORAGE AREA AREA3
cont> CREATE STORAGE AREA AREA4
cont> CREATE TABLE SPECIES
cont> ( GENUS CHAR (30),
cont> SPECIES CHAR (30),
cont> COMMON_NAME CHAR (40),
cont> FAMILY_NUMBER INT (3),
cont> SPECIES_NUMBER INT (3)
cont> )
cont> CREATE INDEX I1 ON SPECIES (FAMILY_NUMBER)
cont> CREATE TABLE SIGHTING
cont> ( SPECIES_NUMBER INT (3),
cont> COMMON_NAME CHAR (40),
cont> CITY CHAR (20),
cont> STATE CHAR (20),
cont> SIGHTING_DATE DATE ANSI,
cont> NOTES_NUMBER INT (5))
cont> CREATE INDEX I2 ON SIGHTING (SPECIES_NUMBER)
cont> CREATE TABLE FIELD_NOTES
cont> ( WEATHER CHAR (30),
cont> TIDE CHAR (15),
cont> SPECIES_NUMBER INT (3),
cont> SIGHTING_TIME TIMESTAMP(2),
cont> NOTES CHAR (500),
cont> NOTES_NUMBER INT (5))
cont> CREATE INDEX I3 ON FIELD_NOTES (NOTES_NUMBER)
cont> ;
SQL> --
SQL> -- The following CREATE STORAGE MAP statements place and
SQL> -- override thresholds on uniform storage area.
SQL> --
SQL> -- Note that the default threshold clause for the
SQL> -- storage map is not enclosed in parentheses, but each
SQL> -- threshold clause associated with a particular area is.
SQL> --
SQL> CREATE STORAGE MAP M1 FOR SPECIES
cont> THRESHOLDS ARE (30, 50, 80)
cont> ENABLE COMPRESSION
cont> PLACEMENT VIA INDEX I1
cont> STORE
cont> IN AREA1
cont> (THRESHOLD (10) );
SQL> --
SQL> CREATE STORAGE MAP M2 FOR SIGHTING
cont> THRESHOLD IS (40)
cont> STORE
cont> RANDOMLY ACROSS (
cont> AREA1 (THRESHOLD OF (10) ),
cont> AREA2 (THRESHOLDS ARE (30, 50, 98) ),
cont> AREA3
cont> );
SQL> --
SQL> CREATE STORAGE MAP M3 FOR FIELD_NOTES
cont> THRESHOLDS OF (50,70,90)
cont> STORE
cont> USING (SPECIES_NUMBER, NOTES_NUMBER)
cont> IN AREA1
cont> (THRESHOLDS OF (20, 80, 90) )
cont> WITH LIMIT OF (30, 88)
cont> IN AREA2
cont> WITH LIMIT OF (40, 89)
cont> IN AREA3
cont> WITH LIMIT OF (50, 90)
cont> OTHERWISE IN AREA4
cont> (THRESHOLDS ARE (20, 30, 40));
SQL> --
SQL> SHOW STORAGE MAP *;
User Storage Maps in database with filename birdlist
M1
For Table: SPECIES
Placement Via Index: I1
Partitioning is: UPDATABLE
Store clause: STORE
IN AREA1
(THRESHOLD (10) )
Partition information for storage map:
Compression is: ENABLED
Partition: (1) SYS_P00062
Storage Area: AREA1
M2
For Table: SIGHTING
Partitioning is: UPDATABLE
Store clause: STORE
RANDOMLY ACROSS (
AREA1 (THRESHOLD OF (10) ),
AREA2 (THRESHOLDS ARE (30, 50, 98) ),
AREA3
)
Partition information for storage map:
Compression is: ENABLED
Partition: (1) SYS_P00063
Storage Area: AREA1
Partition: (2) SYS_P00064
Storage Area: AREA2
Partition: (3) SYS_P00065
Storage Area: AREA3
M3
For Table: FIELD_NOTES
Partitioning is: UPDATABLE
Store clause: STORE
USING (SPECIES_NUMBER, NOTES_NUMBER)
IN AREA1
(THRESHOLDS OF (20, 80, 90) )
WITH LIMIT OF (30, 88)
IN AREA2
WITH LIMIT OF (40, 89)
IN AREA3
WITH LIMIT OF (50, 90)
OTHERWISE IN AREA4
(THRESHOLDS ARE (20, 30, 40))
Partition information for storage map:
Compression is: ENABLED
Partition: (1) SYS_P00066
Storage Area: AREA1
Partition: (2) SYS_P00067
Storage Area: AREA2
Partition: (3) SYS_P00068
Storage Area: AREA3
Partition: (4) SYS_P00069
Storage Area: AREA4
SQL> --
SQL> ROLLBACK;
Example 3: Creating a storage map that stores lists
This example creates a storage map that stores lists on specific
storage areas.
SQL> CREATE DATABASE FILENAME test
cont> CREATE STORAGE AREA LISTS1 PAGE FORMAT IS MIXED
cont> CREATE STORAGE AREA LISTS2 PAGE FORMAT IS MIXED
cont>
cont> CREATE TABLE EMPLOYEES
cont> (EMP_ID CHAR(5),
cont> RESUME LIST OF BYTE VARYING);
SQL> --
SQL> CREATE STORAGE MAP LISTS_MAP
cont> STORE LISTS IN
cont> (LISTS1,LISTS2) FOR (EMPLOYEES.RESUME)
cont> FILL SEQUENTIALLY
cont> IN RDB$SYSTEM;
Example 4: Creating an alternate map
This example following storage map shows an alternate mapping for
the EMPLOYEES table in the same MF_PERSONNEL database.
SQL> create storage map EMPLOYEES_MAP
cont> for EMPLOYEES
cont> placement via index EMPLOYEES_HASH
cont> -- store the primary information horizontally partitioned
cont> -- across the areas EMPIDS_LOW, EMPIDS_MID and EMPIDS_OVER
cont> -- disable compress because these columns are accessed often
cont> store
cont> columns (EMPLOYEE_ID, LAST_NAME,
cont> FIRST_NAME, MIDDLE_INITIAL)
cont> disable compression
cont> using (EMPLOYEE_ID)
cont> in EMPIDS_LOW
cont> with limit of ('00200')
cont> in EMPIDS_MID
cont> with limit of ('00400')
cont> otherwise in EMPIDS_OVER
cont>
cont> -- place all the address information in EMP_INFO
cont> -- make sure these character columns are compressed
cont> -- to remove the trailing spaces
cont> store
cont> columns (ADDRESS_DATA_1, ADDRESS_DATA_2, CITY, STATE,
cont> POSTAL_CODE)
cont> enable compression
cont> in EMP_INFO
cont>
cont> -- the remaining columns get
cont> -- written randomly over these areas
cont> store
cont> enable compression
cont> randomly across (SALARY_HISTORY, JOBS);
Example 5: Disabling logging and naming horizontal and vertical
partitions
SQL> CREATE DATABASE FILENAME birdlist
cont> CREATE STORAGE AREA AREA1
cont> CREATE STORAGE AREA AREA2
cont> CREATE STORAGE AREA AREA3
cont> CREATE STORAGE AREA AREA4
cont> CREATE STORAGE AREA AREA5
cont> CREATE STORAGE AREA AREA6
cont> CREATE STORAGE AREA AREA7
cont> CREATE STORAGE AREA AREA8
cont> CREATE TABLE SPECIES
cont> ( GENUS CHAR (30),
cont> SPECIES CHAR (30),
cont> COMMON_NAME CHAR (40),
cont> FAMILY_NUMBER INT (3),
cont> SPECIES_NUMBER INT (3)
cont> )
cont> CREATE INDEX I1 ON SPECIES (FAMILY_NUMBER)
cont> CREATE TABLE SIGHTING
cont> ( SPECIES_NUMBER INT (3),
cont> COMMON_NAME CHAR (40),
cont> CITY CHAR (20),
cont> STATE CHAR (20),
cont> SIGHTING_DATE DATE ANSI,
cont> NOTES_NUMBER INT (5))
cont> CREATE INDEX I2 ON SIGHTING (SPECIES_NUMBER)
cont> CREATE TABLE FIELD_NOTES
cont> ( WEATHER CHAR (30),
cont> TIDE CHAR (15),
cont> SIGHTING_TIME TIMESTAMP(2),
cont> NOTES CHAR (500),
cont> NOTES_NUMBER INT (5),
cont> SPECIES_NUMBER INT (3))
cont> CREATE INDEX I3 ON FIELD_NOTES (NOTES_NUMBER);
SQL> --
SQL> -- Note that the default threshold clause for the
SQL> -- storage map is not enclosed in parentheses, but each
SQL> -- threshold clause associated with a particular area is enclosed
SQL> -- in parentheses.
SQL> --
SQL> CREATE STORAGE MAP M1 FOR SPECIES
cont> THRESHOLDS ARE (30, 50, 80)
cont> ENABLE COMPRESSION
cont> PLACEMENT VIA INDEX I1
cont> NOLOGGING
cont> COMMENT IS 'Storage Map for Species'
cont> STORE
cont> IN AREA1
cont> (THRESHOLD (10),
cont> PARTITION AREA1,
cont> COMMENT IS 'Partition is AREA1');
SQL> --
SQL> CREATE STORAGE MAP M2 FOR SIGHTING
cont> THRESHOLD IS (40)
cont> STORE
cont> RANDOMLY ACROSS (
cont> AREA1 (THRESHOLD OF (10),
cont> PARTITION AREA1),
cont> AREA2 (THRESHOLDS ARE (30, 50, 98),
cont> PARTITION AREA2),
cont> AREA3 (PARTITION AREA3)
cont> );
SQL> --
SQL> CREATE STORAGE MAP M3 FOR FIELD_NOTES
cont> THRESHOLDS OF (50,70,90)
cont> STORE COLUMNS (WEATHER, TIDE, SIGHTING_TIME)
cont> VERTICAL PARTITION WEATHER_TIDE_SIGHTINGTIME
cont> USING (SPECIES_NUMBER, NOTES_NUMBER)
cont> IN AREA1
cont> (THRESHOLDS OF (20, 80, 90) )
cont> WITH LIMIT OF (30, 88)
cont> IN AREA2
cont> WITH LIMIT OF (40, 89)
cont> IN AREA3
cont> WITH LIMIT OF (50, 90)
cont> OTHERWISE IN AREA4
cont> (THRESHOLDS ARE (20, 30, 40))
cont> STORE COLUMNS (NOTES, NOTES_NUMBER, SPECIES_NUMBER)
cont> VERTICAL PARTITION NOTES_NOTESNUM_SPECIESNUM
cont> USING (SPECIES_NUMBER)
cont> IN AREA5
cont> (THRESHOLDS OF (20, 80, 90) )
cont> WITH LIMIT OF (30)
cont> IN AREA6
cont> WITH LIMIT OF (40)
cont> IN AREA7
cont> WITH LIMIT OF (50)
cont> OTHERWISE IN AREA8
cont> (THRESHOLDS ARE (20, 30, 40));
Example 6: Creating a storage map for a table containing data
SQL> -- Create table, insert data, and then create a storage map.
SQL> --
SQL> CREATE TABLE MAP_TEST2 (a INTEGER, b CHAR(10));
SQL> INSERT INTO MAP_TEST2 (a, b) VALUES (2, 'Second');
1 row inserted
SQL> CREATE STORAGE MAP MAP_TEST2_MAP FOR MAP_TEST2
cont> STORE IN RDB$SYSTEM;
SQL> INSERT INTO MAP_TEST2 (a, b) VALUES (22, 'Second2');
1 row inserted
SQL> COMMIT;
SQL> SELECT *,DBKEY FROM MAP_TEST2;
A B DBKEY
2 Second 90:809:0
22 Second2 90:809:1
2 rows selected
SQL>
SQL> -- Now alter the storage map and
SQL> -- place it in a different storage area.
SQL>
SQL> ALTER STORAGE MAP MAP_TEST2_MAP
cont> STORE IN TEST_AREA2;
SQL> COMMIT;
SQL> SELECT *,DBKEY FROM MAP_TEST2;
A B DBKEY
2 Second 91:11:0
22 Second2 91:11:1
2 rows selected
SQL>
Example 7: Invalid attempts to create a storage map
SQL> -- Create table, insert data, and then
SQL> -- create a storage map with invalid attributes.
SQL>
SQL> CREATE TABLE MAP_TEST3 (a INTEGER, b CHAR(10));
SQL> CREATE INDEX MAP_TEST3_INDEX ON MAP_TEST3 (a);
SQL> INSERT INTO MAP_TEST3 (a, b) VALUES (3, 'Third');
1 row inserted
SQL>
SQL> CREATE STORAGE MAP MAP_TEST3_MAP FOR MAP_TEST3
cont> STORE IN TEST_AREA1; -- Must be the default area.
%RDB-E-NO_META_UPDATE, metadata update failed
-RDMS-F-RELNOTEMPTY, table "MAP_TEST3" has data in it
-RDMS-E-NOCMPLXMAP, can not use complex map for non-empty table
SQL>
SQL> CREATE STORAGE MAP MAP_TEST3_MAP for MAP_TEST3
cont> PLACEMENT VIA INDEX MAP_TEST3_INDEX -- Can't use placement.
cont> STORE IN RDB$SYSTEM;
%RDB-E-NO_META_UPDATE, metadata update failed
-RDMS-F-RELNOTEMPTY, table "MAP_TEST3" has data in it
-RDMS-E-NOCMPLXMAP, can not use complex map for non-empty table
SQL>
SQL> CREATE STORAGE MAP MAP_TEST3_MAP FOR MAP_TEST3
cont> DISABLE COMPRESSION -- Can't change compression.
cont> STORE IN RDB$SYSTEM;
%RDB-E-NO_META_UPDATE, metadata update failed
-RDMS-F-RELNOTEMPTY, table "MAP_TEST3" has data in it
-RDMS-E-NOCMPLXMAP, can not use complex map for non-empty table
SQL>
SQL> CREATE STORAGE MAP MAP_TEST3_MAP for MAP_TEST3
cont> THRESHOLDS ARE (50, 60, 70) -- Can't change thresholds.
cont> STORE IN RDB$SYSTEM;
%RDB-E-NO_META_UPDATE, metadata update failed
-RDMS-F-RELNOTEMPTY, table "MAP_TEST3" has data in it
-RDMS-E-NOCMPLXMAP, can not use complex map for non-empty table
SQL>
SQL> CREATE STORAGE MAP MAP_TEST3_MAP FOR MAP_TEST3
cont> STORE ACROSS (RDB$SYSTEM, TEST_AREA2);-- Can't use more than one area.
%RDB-E-NO_META_UPDATE, metadata update failed
-RDMS-F-RELNOTEMPTY, table "MAP_TEST3" has data in it
-RDMS-E-NOCMPLXMAP, can not use complex map for non-empty table
SQL>
SQL> CREATE STORAGE MAP MAP_TEST3_MAP for MAP_TEST3
cont> STORE COLUMNS (a) in RDB$SYSTEM -- Can't vertically partition.
cont> STORE COLUMNS (b) in TEST_AREA2;
%RDB-E-NO_META_UPDATE, metadata update failed
-RDMS-F-RELNOTEMPTY, table "MAP_TEST3" has data in it
-RDMS-E-NOCMPLXMAP, can not use complex map for non-empty table
Example 8: Using the RMU Extract command to display WITH LIMIT OF
expressions
The WITH LIMIT OF clauses of the STORE clause are converted
to Boolean expressions that are used by Oracle Rdb to direct
inserted data to the correct storage area. You can use the RMU
Extract command to display these Boolean expressions. Use the
Item=STORAGE_MAP and Option=FULL qualifiers as shown in the
following example.
$ RMU/EXTRACT-
_$ /ITEM=STORAGE_MAP-
_$ /OPTION=(MATCH:EMPLOYEES_MAP%,NOHEADER,FULL,FILENAME_ONLY) -
_$ DB$:MF_PERSONNEL
set verify;
set language ENGLISH;
set default date format 'SQL92';
set quoting rules 'SQL92';
set date format DATE 001, TIME 001;
attach 'filename MF_PERSONNEL.RDB';
create storage map EMPLOYEES_MAP
for EMPLOYEES
comment is
' employees partitioned by "00200" "00400"'
placement via index EMPLOYEES_HASH
store
using (EMPLOYEE_ID)
-- Partition:
-- (EMPLOYEE_ID <= '00200')
in EMPIDS_LOW
with limit of ('00200')
-- Partition:
-- (EMPLOYEE_ID <= '00400')
in EMPIDS_MID
with limit of ('00400')
otherwise in EMPIDS_OVER;
commit work;
Example 9: SQL Mapping Routine
This example shows the SQL mapping routine created by the CREATE
STORAGE MAP statement that matches the WITH LIMIT OF clause for
the storage map.
SQL> create table EMPLOYEES (
cont> EMPLOYEE_ID CHAR (5),
cont> LAST_NAME CHAR (14),
cont> FIRST_NAME CHAR (10),
cont> MIDDLE_INITIAL CHAR (1),
cont> ADDRESS_DATA_1 CHAR (25),
cont> ADDRESS_DATA_2 CHAR (25),
cont> CITY CHAR (20),
cont> STATE CHAR (2),
cont> POSTAL_CODE CHAR (5),
cont> SEX CHAR (1),
cont> BIRTHDAY DATE VMS,
cont> STATUS_CODE CHAR (1));
SQL>
SQL> create storage map EMPLOYEES_MAP
cont> for EMPLOYEES
cont> comment is
cont> ' employees partitioned by "00200" "00400"'
cont> store
cont> using (EMPLOYEE_ID)
cont> in EMPIDS_LOW
cont> with limit of ('00200')
cont> in EMPIDS_MID
cont> with limit of ('00400')
cont> otherwise in EMPIDS_OVER;
SQL>
SQL> commit work;
SQL>
SQL> show system modules;
Modules in database with filename MF_PERSONNEL
RDB$STORAGE_MAPS
SQL>
SQL> show system functions;
Functions in database with filename MF_PERSONNEL
EMPLOYEES_MAP
SQL>
SQL> show system function EMPLOYEES_MAP;
Information for function EMPLOYEES_MAP
Function ID is: -2
Source:
return
case
when (:EMPLOYEE_ID <= '00200') then 1
when (:EMPLOYEE_ID <= '00400') then 2
else 3
end case;
Comment: Return value for select partition - range 1 .. 3
Module name is: RDB$STORAGE_MAPS
Module ID is: -1
Number of parameters is: 1
Parameter Name Data Type Domain or Type
-------------- --------- --------------
INTEGER
Function result datatype
Return value is passed by value
EMPLOYEE_ID CHAR(5)
Parameter position is 1
Parameter is IN (read)
Parameter is passed by reference
Example 10: Using Storage Area Attributes in a LIST Storage Map
The following example shows the use of storage area attributes in
a LIST storage map. The storage area attributes must immediately
follow the storage area name (as in table storage maps).
SQL> create database
cont> filename 'DB$:MULTIMEDIA'
cont>
cont> create storage area PHOTO_AREA1
cont> filename 'DB$:PHOTO_AREA1'
cont> page format UNIFORM
cont>
cont> create storage area PHOTO_AREA2
cont> filename 'DB$:PHOTO_AREA2'
cont> page format UNIFORM
cont>
cont> create storage area TEXT_AREA
cont> filename 'DB$:TEXT_AREA'
cont> page format UNIFORM
cont>
cont> create storage area AUDIO_AREA
cont> filename 'DB$:AUDIO_AREA'
cont> page format UNIFORM
cont>
cont> create storage area DATA_AREA
cont> filename 'DB$:DATA_AREA'
cont> page format UNIFORM
cont> ;
SQL>
SQL> create table EMPLOYEES
cont> (name char(30),
cont> dob date,
cont> ident integer,
cont> photograph list of byte varying (4096) as binary,
cont> resume list of byte varying (132) as text,
cont> review list of byte varying (80) as text,
cont> voiceprint list of byte varying (4096) as binary
cont> );
SQL>
SQL> create storage map EMPLOYEES_MAP
cont> for EMPLOYEES
cont> enable compression
cont> store in DATA_AREA;
SQL>
SQL> create storage map LISTS_MAP
cont> store lists
cont> in AUDIO_AREA
cont> (thresholds are (89, 99, 100)
cont> ,comment is 'The voice clips'
cont> ,partition AUDIO_STUFF)
cont> for (employees.voiceprint)
cont> in TEXT_AREA
cont> (thresholds is (99)
cont> ,partition TEXT_DOCUMENTS)
cont> for (employees.resume, employees.review)
cont> in (PHOTO_AREA1
cont> (comment is 'Happy Smiling Faces?'
cont> ,threshold is (99)
cont> ,partition PHOTOGRAPHIC_IMAGES_1)
cont> ,PHOTO_AREA2
cont> (comment is 'Happy Smiling Faces?'
cont> ,threshold is (99)
cont> ,partition PHOTOGRAPHIC_IMAGES_2)
cont> )
cont> for (employees.photograph)
cont> fill randomly
cont> in RDB$SYSTEM
cont> (partition SYSTEM_LARGE_OBJECTS);
SQL>
SQL> show storage map LISTS_MAP;
LISTS_MAP
For Lists
Store clause: STORE lists
in AUDIO_AREA
(thresholds are (89, 99, 100)
,comment is 'The voice clips'
,partition AUDIO_STUFF)
for (employees.voiceprint)
in TEXT_AREA
(thresholds is (99)
,partition TEXT_DOCUMENTS)
for (employees.resume, employees.review)
in (PHOTO_AREA1
(comment is 'Happy Smiling Faces?'
,threshold is (99)
,partition PHOTOGRAPHIC_IMAGES_1)
,PHOTO_AREA2
(comment is 'Happy Smiling Faces?'
,threshold is (99)
,partition PHOTOGRAPHIC_IMAGES_2)
)
for (employees.photograph)
fill randomly
in RDB$SYSTEM
(partition SYSTEM_LARGE_OBJECTS)
Partition information for lists map:
Vertical Partition: VRP_P000
Partition: (1) AUDIO_STUFF
Fill Randomly
Storage Area: AUDIO_AREA
Thresholds are (89, 99, 100)
Comment: The voice clips
Partition: (2) TEXT_DOCUMENTS
Fill Randomly
Storage Area: TEXT_AREA
Thresholds are (99, 100, 100)
Partition: (3) PHOTOGRAPHIC_IMAGES_1
Fill Randomly
Storage Area: PHOTO_AREA1
Thresholds are (99, 100, 100)
Comment: Happy Smiling Faces?
Partition: (3) PHOTOGRAPHIC_IMAGES_2
Storage Area: PHOTO_AREA2
Thresholds are (99, 100, 100)
Comment: Happy Smiling Faces?
Partition: (4) SYSTEM_LARGE_OBJECTS
Fill Randomly
Storage Area: RDB$SYSTEM
SQL>
SQL> commit;