Mega Code Archive

 
Categories / Oracle PLSQL Tutorial / SQL PLUS Session Environment
 

Introduction to SQL Tuning - Workshop

SQL> SQL> create table employee   2          (   3           empl_no                integer         primary key   4          ,lastname               varchar2(20)    not null   5          ,firstname              varchar2(15)    not null   6          ,midinit                varchar2(1)   7          ,street                 varchar2(30)   8          ,city                   varchar2(20)   9          ,state                  varchar2(2)  10          ,zip                    varchar2(5)  11          ,zip_4                  varchar2(4)  12          ,area_code              varchar2(3)  13          ,phone                  varchar2(8)  14          ,company_name           varchar2(50)); Table created. SQL> SQL> insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)   2  values(1,'Jones','Joe','J','10 Ave','New York','NY','11111','1111','111', '111-1111','A Company'); 1 row created. SQL> SQL> insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)   2  values(2,'Smith','Sue','J','20 Ave','New York','NY','22222','2222','222', '222-111','B Company'); 1 row created. SQL> SQL> insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)   2  values(3,'Anderson','Peggy','J','500 St','New York','NY','33333','3333','333', '333-3333','C Company'); 1 row created. SQL> SQL> insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)   2  values(4,'Andy','Jill', null,'930 St','New York','NY','44444','4444','212', '634-7733','D Company'); 1 row created. SQL> SQL> insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)   2  values(5,'OK','Carl','L','19 Drive','New York','NY','55555','3234','212', '243-4243','E Company'); 1 row created. SQL> SQL> insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)   2  values(6,'Peter','Jee','Q','38 Ave','New York','NY','66666','4598','212', '454-5443','F Inc'); 1 row created. SQL> SQL> insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)   2  values(7,'Baker','Paul','V','738 St.','Queens','NY','77777','3842','718', '664-4333','G Inc'); 1 row created. SQL> SQL> insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)   2  values(8,'Young','Steve','J','388 Ave','New York','NY','88888','3468','212', '456-4566','H Associates Inc'); 1 row created. SQL> SQL> insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)   2  values(9,'Mona','Joe','T','9300 Ave','Kansas City','MO','99999','3658','415', '456-4563','J Inc'); 1 row created. SQL> SQL> insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)   2  values(10,'Hackett','Karen','S','Kings Rd. Apt 833','Bellmore','NY','61202','3898','516', '767-5677','AA Inc'); 1 row created. SQL> SQL> insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)   2  values(11,'Bob','Jack','S','12 Giant Rd.','Newark','NJ','27377','3298','908', '123-7367','Z Associates'); 1 row created. SQL> SQL> -- 2. SQL> desc plan_table  Name                                      Null?    Type  ----------------------------------------- -------- ----------------------------  STATEMENT_ID                                       VARCHAR2(30)  PLAN_ID                                            NUMBER  TIMESTAMP                                          DATE  REMARKS                                            VARCHAR2(4000)  OPERATION                                          VARCHAR2(30)  OPTIONS                                            VARCHAR2(255)  OBJECT_NODE                                        VARCHAR2(128)  OBJECT_OWNER                                       VARCHAR2(30)  OBJECT_NAME                                        VARCHAR2(30)  OBJECT_ALIAS                                       VARCHAR2(65)  OBJECT_INSTANCE                                    NUMBER(38)  OBJECT_TYPE                                        VARCHAR2(30)  OPTIMIZER                                          VARCHAR2(255)  SEARCH_COLUMNS                                     NUMBER  ID                                                 NUMBER(38)  PARENT_ID                                          NUMBER(38)  DEPTH                                              NUMBER(38)  POSITION                                           NUMBER(38)  COST                                               NUMBER(38)  CARDINALITY                                        NUMBER(38)  BYTES                                              NUMBER(38)  OTHER_TAG                                          VARCHAR2(255)  PARTITION_START                                    VARCHAR2(255)  PARTITION_STOP                                     VARCHAR2(255)  PARTITION_ID                                       NUMBER(38)  OTHER                                              LONG  OTHER_XML                                          CLOB  DISTRIBUTION                                       VARCHAR2(30)  CPU_COST                                           NUMBER(38)  IO_COST                                            NUMBER(38)  TEMP_SPACE                                         NUMBER(38)  ACCESS_PREDICATES                                  VARCHAR2(4000)  FILTER_PREDICATES                                  VARCHAR2(4000)  PROJECTION                                         VARCHAR2(4000)  TIME                                               NUMBER(38)  QBLOCK_NAME                                        VARCHAR2(30) SQL> SQL> -- 3. SQL> set autotrace on SQL> select empl_no, state, phone from employee where state = 'NY';    EMPL_NO ST PHONE ---------- -- --------          1 NY 111-1111          2 NY 222-111          3 NY 333-3333          4 NY 634-7733          5 NY 243-4243          6 NY 454-5443          7 NY 664-4333          8 NY 456-4566         10 NY 767-5677 9 rows selected. Execution Plan ---------------------------------------------------------- Plan hash value: 2119105728 ------------------------------------------------------------------------------ | Id  | Operation         | Name     | Rows  | Bytes | Cost (%CPU)| Time     | ------------------------------------------------------------------------------ |   0 | SELECT STATEMENT  |          |     9 |   198 |     2   (0)| 00:00:01 | |*  1 |  TABLE ACCESS FULL| EMPLOYEE |     9 |   198 |     2   (0)| 00:00:01 | ------------------------------------------------------------------------------ Predicate Information (identified by operation id): ---------------------------------------------------    1 - filter("STATE"='NY') Note -----    - dynamic sampling used for this statement Statistics ----------------------------------------------------------          48  recursive calls           0  db block gets          12  consistent gets           0  physical reads           0  redo size         698  bytes sent via SQL*Net to client         380  bytes received via SQL*Net from client           2  SQL*Net roundtrips to/from client           0  sorts (memory)           0  sorts (disk)           9  rows processed SQL> SQL> -- 4. SQL> set autotrace off SQL> explain plan   2  set statement_id = 'test'   3  for   4  select empl_no, state, phone   5  from employee   6  where state = 'NY'; Explained. SQL> SQL> drop table employee; Table dropped. SQL>