Home » SQL & PL/SQL » SQL & PL/SQL » Re: Regarding INDEX
Re: Regarding INDEX [message #2574] Mon, 29 July 2002 04:47
K.SREENIVASAN
Messages: 110
Registered: January 2001
Location: banglore
Senior Member
SIR,

FOR EXAMPLE YOU ARE HAVING A TABLE CALLED EMP
THESE TABLE CONTAINS NAME,NO,ADDRES,AGE(TAKE 20 COLUMNS LIKE THIS).INSERT 20,00,000 RECORDS TO THIS TABLE.

THEN RUN THE UTXOLAN.SQL FILE(IT MAY BE IN THE ORACLE_PATHRDBMSADMIN DIRECTORY.IT WILL CREATE PLAN_TABLE IN YOUR CURRENT USER SCHEMA.

THEN
SQL>SET AUTOTRACE ON
SQL)SELECT * FROM EMP WHERE EMPNO=10000;

IN THE ABOVE QUERY,IT WILL LOAD THE FULL TABLE IN TO THE MEMORY AND IT WILL FIND THE 10000 RECORD.
IT WILL TAKE A LONG TIME
INSTEAD OF THAT ONE,WE ARE GOING FOR INDEX.
IF YOU CREATE THE INDEX FOR PARTICULAR COLUMN,THEN INDEX SEGMENT IS CREATED IN YOUR DATABASE AND THE VALUE IN THE COLUMN IS STORED IN THE INDEX SEGMENT WITH ROWID.IF YOU EXECUTE THE QUERY NOW,THEN IT WON'T LOAD FULL TABLE.IT LOAD ONLY INDEX SEGMENT AND YOU CAN GET THE ROW EASILY
SQL>SET AUTOTRACE ON;
SQL>CREATE UNIQUE INDEX EMINDEX ON EMP(EMPNO);

SQL>SELECT * FROM EMP WHERE EMPNO=10000;

COMPARE THE EXPLAIN PLAN AND IT WILL GIVE ANSWER FOR YOU.

K.SREENIVASAN
Previous Topic: No data found
Next Topic: ORACLE Instance Terminate
Goto Forum:
  


Current Time: Thu Apr 25 07:26:30 CDT 2024