CREATE TABLE cars (
units NUMBER,
make VARCHAR2(20),
model VARCHAR2(30),
year NUMBER
)
INDEXING OFF
PARTITION BY RANGE (year)
(PARTITION gen1 VALUES LESS THAN (1973) INDEXING ON,
PARTITION gen2 VALUES LESS THAN (1978) INDEXING OFF,
PARTITION gen3 VALUES LESS THAN (1993) INDEXING ON,
PARTITION gen4 VALUES LESS THAN (2004) INDEXING OFF,
PARTITION gen5 VALUES LESS THAN (2014) INDEXING OFF,
PARTITION gen6 VALUES LESS THAN (MAXVALUE) INDEXING OFF);
/* First Generation */
INSERT INTO cars
SELECT ROUND(dbms_rANDom.value(1,10000)) units,
'FORD','MUSTANG',
ROUND(dbms_rANDom.value(1964,1973)) year
FROM dual
CONNECT BY LEVEL < 5000 ;
/* Second Generation */
INSERT INTO cars
SELECT ROUND(dbms_rANDom.value(1,10000)) units,
'FORD','MUSTANG',
ROUND(dbms_rANDom.value(1974,1978)) year
FROM dual
CONNECT BY LEVEL < 5000 ;
/* Third Generation */
INSERT INTO cars
SELECT ROUND(dbms_rANDom.value(1,10000)) units,
'FORD','MUSTANG',
ROUND(dbms_rANDom.value(1979,1993)) year
FROM dual
CONNECT BY LEVEL < 5000 ;
/* Fourth Generation */
INSERT INTO cars
SELECT ROUND(dbms_rANDom.value(1,10000)) units,
'FORD','MUSTANG',
ROUND(dbms_rANDom.value(1994,2004)) year
FROM dual
CONNECT BY LEVEL < 5000 ;
/* Fifth Generation */
INSERT INTO cars
SELECT ROUND(dbms_rANDom.value(1,10000)) units,
'FORD','MUSTANG',
ROUND(dbms_rANDom.value(2005,2014)) year
FROM dual
CONNECT BY LEVEL < 5000 ;
/* Sixth Generation */
INSERT INTO cars
SELECT ROUND(dbms_rANDom.value(1,10000)) units,
'FORD','MUSTANG',
2015
FROM dual
CONNECT BY LEVEL < 5000 ;
COMMIT;
CREATE INDEX car_make ON cars (make);
SELECT index_name,
num_rows,
leaf_blocks,
indexing
FROM user_indexes
WHERE index_name = 'CAR_MAKE' ;
SET AUTOTRACE ON
SELECT count(*)
FROM cars
WHERE make = 'FORD'
AND year < 1974 ;
DROP INDEX car_make;
CREATE INDEX car_make_i ON cars (make) INDEXING PARTIAL;
SELECT index_name,
num_rows,
leaf_blocks,
indexing
FROM user_indexes
WHERE index_name = 'CAR_MAKE_I';
SELECT count(*)
FROM cars
WHERE make = 'FORD'
AND year < 1974 ;
SELECT count(*)
FROM cars
WHERE make = 'FORD'
AND year > 2005 ;
-- Clean-Up
DROP TABLE cars PURGE;