|
|
¡¡¡¡»·¾³£º ¡¡¡¡Linux version 2.4.20-8custom (root@web2) (gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5)) #3 SMP Thu Jun 5 22:03:36 CST 2003 ¡¡¡¡Mem:¡¡2113466368¡¡ ¡¡¡¡Swap: 4194881536¡¡ ¡¡¡¡CPU:Á½¸ö³¬Ï̵߳ÄIntel(R) Xeon(TM) CPU 2.40GHz ¡¡¡¡¡¡ ¡¡¡¡ÓÅ»¯Ç°Óï¾äÔÚmysqlÀïÃæ²éѯ15Ãë×óÓÒ³öÀ´£¬×ªÒƵ½oracleºó½øÐÐÔÚ²»µ÷ÕûË÷ÒýºÍÓï¾äµÄÇé¿öÏÂÖ´ÐÐʱ¼ä´ó¸ÅÊÇ4-5Ã룬µ÷ÕûºóÖ´ÐÐʱ¼äСÓÚ0.5Ãë¡£ ¡¡¡¡¡¡ ¡¡¡¡·Ò³Óï¾ä£º ¡¡¡¡SELECT * FROM¡¡(SELECT T1.*, rownum as linenum FROM¡¡( ¡¡¡¡SELECT /*+ index(a ind_old)*/ ¡¡¡¡a.category FROM auction_auctions a WHERE a.category =' 170101 ' AND a.closed='0' AND ends > sysdate AND (a.approve_status>=0)¡¡ORDER BY a.ends) T1¡¡WHERE rownum < 18681) WHERE linenum >= 18641 ¡¡¡¡¡¡ ¡¡¡¡±»²éѯµÄ±í£ºauction_auctions£¨²úÆ·±í£© ¡¡¡¡±í½á¹¹£º ¡¡¡¡ ¡¡¡¡ ¡¡¡¡¡¡Code: [Copy to clipboard]¡¡ ¡¡¡¡ ¡¡¡¡SQL> desc auction_auctions;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡Name¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Null?¡¡¡¡Type ¡¡¡¡¡¡----------------------------------------- -------- ---------------------------- ¡¡¡¡¡¡ID¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NOT NULL VARCHAR2(32) ¡¡¡¡¡¡USERNAME¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ VARCHAR2(32) ¡¡¡¡¡¡TITLE¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CLOB ¡¡¡¡¡¡GMT_MODIFIED¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NOT NULL DATE ¡¡¡¡¡¡STARTS¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NOT NULL DATE ¡¡¡¡¡¡DESCRIPTION¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CLOB ¡¡¡¡¡¡PICT_URL¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ CLOB ¡¡¡¡¡¡CATEGORY¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NOT NULL VARCHAR2(11) ¡¡¡¡¡¡MINIMUM_BID¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NUMBER ¡¡¡¡¡¡RESERVE_PRICE¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NUMBER ¡¡¡¡¡¡BUY_NOW¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NUMBER ¡¡¡¡¡¡AUCTION_TYPE¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ CHAR(1) ¡¡¡¡¡¡DURATION¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ VARCHAR2(7) ¡¡¡¡¡¡INCREMENTNUM¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NOT NULL NUMBER ¡¡¡¡¡¡CITY¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ VARCHAR2(30) ¡¡¡¡¡¡PROV¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ VARCHAR2(20) ¡¡¡¡¡¡LOCATION¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ VARCHAR2(40) ¡¡¡¡¡¡LOCATION_ZIP¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ VARCHAR2(6) ¡¡¡¡¡¡SHIPPING¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ CHAR(1) ¡¡¡¡¡¡PAYMENT¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CLOB ¡¡¡¡¡¡INTERNATIONAL¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CHAR(1) ¡¡¡¡¡¡ENDS¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NOT NULL DATE ¡¡¡¡¡¡CURRENT_BID¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NUMBER ¡¡¡¡¡¡CLOSED¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ CHAR(2) ¡¡¡¡¡¡PHOTO_UPLOADED¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ CHAR(1) ¡¡¡¡¡¡QUANTITY¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ NUMBER(11) ¡¡¡¡¡¡STORY¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CLOB ¡¡¡¡¡¡HAVE_INVOICE¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NOT NULL NUMBER(1) ¡¡¡¡¡¡HAVE_GUARANTEE¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NOT NULL NUMBER(1) ¡¡¡¡¡¡STUFF_STATUS¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NOT NULL NUMBER(1) ¡¡¡¡¡¡APPROVE_STATUS¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NOT NULL NUMBER(1) ¡¡¡¡¡¡OLD_STARTS¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NOT NULL DATE ¡¡¡¡¡¡ZOO¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡VARCHAR2(10) ¡¡¡¡¡¡PROMOTED_STATUS¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ NOT NULL NUMBER(1) ¡¡¡¡¡¡REPOST_TYPE¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CHAR(1) ¡¡¡¡¡¡REPOST_TIMES¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NOT NULL NUMBER(4) ¡¡¡¡¡¡SECURE_TRADE_AGREE¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NOT NULL NUMBER(1) ¡¡¡¡¡¡SECURE_TRADE_TRANSACTION_FEE¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ VARCHAR2(16) ¡¡¡¡¡¡SECURE_TRADE_ORDINARY_POST_FEE¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ NUMBER ¡¡¡¡¡¡SECURE_TRADE_FAST_POST_FEE¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ NUMBER ¡¡¡¡ ¡¡¡¡ ¡¡¡¡ ¡¡¡¡ ¡¡¡¡±í¼Ç¼Êý¼°´óС ¡¡¡¡SQL> select count(*) from auction_auctions; ¡¡¡¡¡¡ ¡¡¡¡¡¡ COUNT(*) ¡¡¡¡---------- ¡¡¡¡537351 ¡¡¡¡¡¡ ¡¡¡¡SQL> select segment_name,bytes,blocks from user_segments where segment_name ='AUCTION_AUCTIONS'; ¡¡¡¡¡¡ ¡¡¡¡SEGMENT_NAME¡¡¡¡¡¡¡¡¡¡BYTES¡¡¡¡ BLOCKS ¡¡¡¡AUCTION_AUCTIONS¡¡¡¡¡¡1059061760¡¡¡¡ 129280 ¡¡¡¡¡¡ ¡¡¡¡±íÉÏÔÓеÄË÷Òý ¡¡¡¡create index ind_old on auction_auctions(closed,approve_status,category,ends) tablespace tbsindex compress 2; ¡¡¡¡¡¡ ¡¡¡¡SQL> select segment_name,bytes,blocks from user_segments where segment_name = 'IND_OLD'; ¡¡¡¡¡¡ ¡¡¡¡SEGMENT_NAME¡¡¡¡¡¡¡¡¡¡ BYTES¡¡¡¡ BLOCKS ¡¡¡¡IND_OLD¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 20971520¡¡¡¡¡¡ 2560 ¡¡¡¡¡¡ ¡¡¡¡±íºÍË÷Òý¶¼ÒѾ·ÖÎö¹ý£¬ÎÒÃÇÀ´¿´Ò»ÏÂsqlÖ´ÐеķÑÓà ¡¡¡¡SQL> set autotrace trace; ¡¡¡¡SQL> SELECT * FROM¡¡(SELECT T1.*, rownum as linenum FROM¡¡(SELECT a.* FROM auction_auctions a WHERE a.category like '18%' AND a.closed='0' AND ends¡¡> sysdate AND (a.approve_status>=0)¡¡ORDER BY a.ends) T1¡¡WHERE rownum <18681) WHERE linenum >= 18641; ¡¡¡¡¡¡ ¡¡¡¡40 rows selected. ¡¡¡¡¡¡ ¡¡¡¡Execution Plan ¡¡¡¡---------------------------------------------------------- ¡¡¡¡¡¡¡¡0¡¡¡¡¡¡SELECT STATEMENT Optimizer=CHOOSE (Cost=19152 Card=18347 Byt ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ es=190698718) ¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡1¡¡¡¡0¡¡ VIEW (Cost=19152 Card=18347 Bytes=190698718) ¡¡¡¡¡¡¡¡2¡¡¡¡1¡¡¡¡ COUNT (STOPKEY) ¡¡¡¡¡¡¡¡3¡¡¡¡2¡¡¡¡¡¡ VIEW (Cost=19152 Card=18347 Bytes=190460207) ¡¡¡¡¡¡¡¡4¡¡¡¡3¡¡¡¡¡¡¡¡ TABLE ACCESS (BY INDEX ROWID) OF 'AUCTION_AUCTIONS' ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ (Cost=19152 Card=18347 Bytes=20860539) ¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡5¡¡¡¡4¡¡¡¡¡¡¡¡¡¡ INDEX (RANGE SCAN) OF 'IND_OLD' (NON-UNIQUE) (Cost ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ =810 Card=186003) ¡¡¡¡¡¡ ¡¡¡¡Statistics ¡¡¡¡---------------------------------------------------------- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 0¡¡recursive calls ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 0¡¡db block gets ¡¡¡¡¡¡¡¡¡¡ 19437¡¡consistent gets ¡¡¡¡¡¡¡¡¡¡ 18262¡¡physical reads ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 0¡¡redo size ¡¡¡¡¡¡¡¡¡¡114300¡¡bytes sent via SQL*Net to client ¡¡¡¡¡¡¡¡¡¡ 56356¡¡bytes received via SQL*Net from client ¡¡¡¡¡¡¡¡¡¡¡¡ 435¡¡SQL*Net roundtrips to/from client ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 0¡¡sorts (memory) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 0¡¡sorts (disk) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡40¡¡rows processed ¡¡¡¡¡¡ ¡¡¡¡ÎÒÃÇ¿ÉÒÔ¿´µ½ÕâÌõsqlÓï¾äͨ¹ýË÷Òý·¶Î§É¨ÃèÕÒµ½×îÀïÃæµÄ½á¹û¼¯£¬È»ºóͨ¹ýÁ½¸öview²Ù×÷×îºóµÃ³öÊý¾Ý¡£ÆäÖÐ18502¡¡consistent gets£¬17901¡¡physical reads ¡¡¡¡¡¡ ¡¡¡¡ÎÒÃÇÀ´¿´Ò»ÏÂÕâ¸öË÷Òý½¨µÄµ½µ×ºÏ²»ºÏÀí£¬ÏÈ¿´Ï¸÷¸ö²éѰÁеÄdistinctÖµ ¡¡¡¡select count(distinct ends) from auction_auctions; ¡¡¡¡¡¡ ¡¡¡¡COUNT(DISTINCTENDS) ¡¡¡¡------------------- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡338965 ¡¡¡¡¡¡ ¡¡¡¡SQL> select count(distinct category) from auction_auctions; ¡¡¡¡¡¡ ¡¡¡¡COUNT(DISTINCTCATEGORY) ¡¡¡¡----------------------- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1148 ¡¡¡¡¡¡ ¡¡¡¡SQL> select count(distinct closed) from auction_auctions; ¡¡¡¡¡¡ ¡¡¡¡COUNT(DISTINCTCLOSED) ¡¡¡¡--------------------- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 2 ¡¡¡¡SQL> select count(distinct approve_status) from auction_auctions; ¡¡¡¡¡¡ ¡¡¡¡COUNT(DISTINCTAPPROVE_STATUS) ¡¡¡¡----------------------------- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 5 ¡¡¡¡¡¡ ¡¡¡¡Ò³Ë÷ÒýÀïÁÐÆ½¾ù´æ´¢³¤¶È ¡¡¡¡SQL> select avg(vsize(ends)) from auction_auctions; ¡¡¡¡¡¡ ¡¡¡¡AVG(VSIZE(ENDS)) ¡¡¡¡---------------- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡7 ¡¡¡¡¡¡ ¡¡¡¡SQL> select avg(vsize(closed)) from auction_auctions; ¡¡¡¡¡¡ ¡¡¡¡AVG(VSIZE(CLOSED)) ¡¡¡¡------------------ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡2 ¡¡¡¡¡¡ ¡¡¡¡SQL> select avg(vsize(category)) from auction_auctions; ¡¡¡¡¡¡ ¡¡¡¡AVG(VSIZE(CATEGORY)) ¡¡¡¡-------------------- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 5.52313106 ¡¡¡¡¡¡ ¡¡¡¡SQL> select avg(vsize(approve_status)) from auction_auctions; ¡¡¡¡¡¡ ¡¡¡¡AVG(VSIZE(APPROVE_STATUS)) ¡¡¡¡-------------------------- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 1.67639401 ¡¡¡¡¡¡ ¡¡¡¡ÎÒÃÇÀ´¹ÀËãһϸ÷ÖÖ×éºÏË÷ÒýµÄ´óС£¬¿ÉÒÔ¿´µ½closed,approve_status£¬category¶¼ÊÇÏà¶Ô½ÏµÍ¼¯ÊƵÄÁУ¨Öظ´Öµ½Ï¶à£©£¬ÏÂÃæÎÒÃÇÀ´´ó¸Å¼ÆËãϸ÷ÖÖÒ³Ë÷ÒýÐèÒªµÄ¿Õ¼ä ¡¡¡¡¡¡ ¡¡¡¡column¡¡¡¡¡¡¡¡¡¡¡¡¡¡ distinct num¡¡¡¡¡¡¡¡column len ¡¡¡¡ends¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡338965¡¡¡¡¡¡¡¡¡¡¡¡¡¡7¡¡ ¡¡¡¡category¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 1148¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡5.5 ¡¡¡¡closed¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 2¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 2¡¡ ¡¡¡¡approve_status¡¡¡¡¡¡¡¡¡¡5¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 1.7¡¡ ¡¡¡¡¡¡ ¡¡¡¡index1: (ends,closed,category,approve_status) compress 2 ¡¡¡¡ends:distinct number---338965 ¡¡¡¡closed: distinct number---2 ¡¡¡¡index size=338965*2*(9+2)+ 537351*(1.7+5.5+6)=14603998 ¡¡¡¡¡¡ ¡¡¡¡index2: (closed,category,ends,approve_status) ¡¡¡¡closed: distinct number---2 ¡¡¡¡category: distinct number---1148 ¡¡¡¡index size=2*1148*(2+5.5)+537351*(7+1.7+6)=7916279 ¡¡¡¡¡¡ ¡¡¡¡index3: (closed,approve_status,category,ends) ¡¡¡¡closed: distinct number---2 ¡¡¡¡approve_status: distinct number¡ª5 ¡¡¡¡index size=2*5*(2+1.7)+537351*(7+5.5+6)=9941030 ¡¡¡¡¡¡ ¡¡¡¡½á¹û³öÀ´ÁË£¬index2: (closed,category,ends,approve_status)µÄË÷Òý×îС ¡¡¡¡¡¡ ¡¡¡¡ÎÒÃÇÔÙÀ´¿´Ò»ÏÂÓï¾ä ¡¡¡¡SELECT * FROM¡¡(SELECT T1.*, rownum as linenum FROM¡¡(SELECT a.* FROM auction_auctions a WHERE a.category like '18%' AND a.closed='0' AND ends¡¡> sysdate AND (a.approve_status>=0)¡¡ORDER BY a.ends) T1¡¡WHERE rownum <18681) WHERE linenum >= 18641; ¡¡¡¡¿ÉÒÔ¿´³öÕâ¸ösqlÓï¾äÓкܴóÓÅ»¯ÓàµØ£¬Ê×ÏÈ×îÀïÃæµÄ½á¹û¼¯SELECT a.* FROM auction_auctions a WHERE a.category like '18%' AND a.closed='0' AND ends¡¡> sysdate AND (a.approve_status>=0)¡¡ORDER BY a.ends£¬ÕâÀïµÄ»°»á×ßindex range scan,È»ºótable scan by rowid£¬ÕâÑùµÄ»°Èç¹û·ûºÏÌõ¼þµÄÊý¾Ý¶àµÄ»°Ï൱ºÄ×ÊÔ´£¬ÎÒÃÇ¿ÉÒÔ¸Äд³É ¡¡¡¡SELECT a.rowid FROM auction_auctions a WHERE a.category like '18%' AND a.closed='0' AND ends¡¡> sysdate AND (a.approve_status>=0)¡¡ORDER BY a.ends ¡¡¡¡ÕâÑùµÄ»°×îÀïÃæµÄ½á¹û¼¯Ö»ÐèÒªindex fast full scan¾Í¿ÉÒÔÍê³ÉÁË£¬ÔÙ¸ÄдһϵóöÒÔÏÂÓï¾ä ¡¡¡¡¡¡ ¡¡¡¡select * from auction_auctions where rowid in (SELECT rid FROM¡¡( ¡¡¡¡SELECT T1.rowid rid, rownum as linenum FROM¡¡ ¡¡¡¡(SELECT a.rowid FROM auction_auctions a WHERE a.category like '18%' AND a.closed='0' AND ends > sysdate AND¡¡ ¡¡¡¡(a.approve_status>=0)¡¡ORDER BY a.ends) T1¡¡WHERE rownum < 18681) WHERE linenum >= 18641) ¡¡¡¡¡¡ ¡¡¡¡ÏÂÃæÎÒÃÇÀ´²âÊÔÒ»ÏÂÕâ¸öË÷ÒýµÄ²éѯ¿ªÏú ¡¡¡¡¡¡ ¡¡¡¡select * from auction_auctions where rowid in (SELECT rid FROM¡¡( ¡¡¡¡SELECT T1.rowid rid, rownum as linenum FROM¡¡ ¡¡¡¡(SELECT a.rowid FROM auction_auctions a WHERE a.category like '18%' AND a.closed='0' AND ends > sysdate AND¡¡ ¡¡¡¡(a.approve_status>=0)¡¡ORDER BY a.closed,a.ends) T1¡¡WHERE rownum < 18681) WHERE linenum >= 18641) ¡¡¡¡¡¡ ¡¡¡¡Execution Plan ¡¡¡¡---------------------------------------------------------- ¡¡¡¡¡¡¡¡0¡¡¡¡¡¡SELECT STATEMENT Optimizer=CHOOSE (Cost=18698 Card=18344 Byt ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ es=21224008) ¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡1¡¡¡¡0¡¡ NESTED LOOPS (Cost=18698 Card=18344 Bytes=21224008) ¡¡¡¡¡¡¡¡2¡¡¡¡1¡¡¡¡ VIEW (Cost=264 Card=18344 Bytes=366880) ¡¡¡¡¡¡¡¡3¡¡¡¡2¡¡¡¡¡¡ SORT (UNIQUE) ¡¡¡¡¡¡¡¡4¡¡¡¡3¡¡¡¡¡¡¡¡ COUNT (STOPKEY) ¡¡¡¡¡¡¡¡5¡¡¡¡4¡¡¡¡¡¡¡¡¡¡ VIEW (Cost=264 Card=18344 Bytes=128408) ¡¡¡¡¡¡¡¡6¡¡¡¡5¡¡¡¡¡¡¡¡¡¡¡¡ SORT (ORDER BY STOPKEY) (Cost=264 Card=18344 Byt ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ es=440256) ¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡7¡¡¡¡6¡¡¡¡¡¡¡¡¡¡¡¡¡¡ INDEX (FAST FULL SCAN) OF 'IDX_AUCTION_BROWSE' ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡(NON-UNIQUE) (Cost=159 Card=18344 Bytes=440256) ¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡8¡¡¡¡1¡¡¡¡ TABLE ACCESS (BY USER ROWID) OF 'AUCTION_AUCTIONS' (Cost ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ =1 Card=1 Bytes=1137) ¡¡¡¡¡¡ ¡¡¡¡Statistics ¡¡¡¡---------------------------------------------------------- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 0¡¡recursive calls ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 0¡¡db block gets ¡¡¡¡¡¡¡¡¡¡¡¡2080¡¡consistent gets ¡¡¡¡¡¡¡¡¡¡¡¡1516¡¡physical reads ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 0¡¡redo size ¡¡¡¡¡¡¡¡¡¡114840¡¡bytes sent via SQL*Net to client ¡¡¡¡¡¡¡¡¡¡ 56779¡¡bytes received via SQL*Net from client ¡¡¡¡¡¡¡¡¡¡¡¡ 438¡¡SQL*Net roundtrips to/from client ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 2¡¡sorts (memory) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 0¡¡sorts (disk) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡40¡¡rows processed ¡¡¡¡¡¡ ¡¡¡¡¿ÉÒÔ¿´µ½consistent gets´Ó19437½µµ½2080£¬physical reads´Ó18262½µµ½1516£¬²éѯʱ¼äÒ²´Ô4Ãë×óÓÒϽµµ½0¡£5Ã룬¿ÉÒÔÀ´ËµÕâ´Îsqlµ÷ÕûÈ¡µÃÁËÔ¤ÆÚµÄЧ¹û¡£ ¡¡¡¡¡¡ ¡¡¡¡½ñÌìÓÖÐÞ¸ÄÁËÒ»ÏÂÓï¾ä£¬ ¡¡¡¡¡¡ ¡¡¡¡SQL> select * from auction_auctions where rowid in¡¡ ¡¡¡¡¡¡ 2¡¡(SELECT rid FROM¡¡(¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡ 3¡¡SELECT T1.rowid rid, rownum as linenum FROM¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡ 4¡¡(SELECT a.rowid FROM auction_auctions a¡¡ ¡¡¡¡¡¡ 5¡¡¡¡ WHERE a.category like '18%' AND a.closed='0' AND ends > sysdate AND¡¡ ¡¡¡¡a.approve_status>=0 ¡¡¡¡¡¡ 6¡¡¡¡7¡¡ORDER BY a.closed,a.category,a.ends) T1¡¡ ¡¡¡¡¡¡ 8¡¡WHERE rownum < 18600) WHERE linenum >= 18560)¡¡¡¡; ¡¡¡¡¡¡ ¡¡¡¡40 rows selected. ¡¡¡¡¡¡ ¡¡¡¡Execution Plan ¡¡¡¡---------------------------------------------------------- ¡¡¡¡¡¡¡¡0¡¡¡¡¡¡SELECT STATEMENT Optimizer=CHOOSE (Cost=17912 Card=17604 Byt ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ es=20367828) ¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡1¡¡¡¡0¡¡ NESTED LOOPS (Cost=17912 Card=17604 Bytes=20367828) ¡¡¡¡¡¡¡¡2¡¡¡¡1¡¡¡¡ VIEW (Cost=221 Card=17604 Bytes=352080) ¡¡¡¡¡¡¡¡3¡¡¡¡2¡¡¡¡¡¡ SORT (UNIQUE) ¡¡¡¡¡¡¡¡4¡¡¡¡3¡¡¡¡¡¡¡¡ COUNT (STOPKEY) ¡¡¡¡¡¡¡¡5¡¡¡¡4¡¡¡¡¡¡¡¡¡¡ VIEW (Cost=221 Card=17604 Bytes=123228) ¡¡¡¡¡¡¡¡6¡¡¡¡5¡¡¡¡¡¡¡¡¡¡¡¡ INDEX (RANGE SCAN) OF 'IDX_AUCTION_BROWSE' (NON- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ UNIQUE) (Cost=221 Card=17604 Bytes=422496) ¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡7¡¡¡¡1¡¡¡¡ TABLE ACCESS (BY USER ROWID) OF 'AUCTION_AUCTIONS' (Cost ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ =1 Card=1 Bytes=1137) ¡¡¡¡¡¡ ¡¡¡¡Statistics ¡¡¡¡---------------------------------------------------------- ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 0¡¡recursive calls ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 0¡¡db block gets ¡¡¡¡¡¡¡¡¡¡¡¡ 550¡¡consistent gets ¡¡¡¡¡¡¡¡¡¡¡¡¡¡14¡¡physical reads ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 0¡¡redo size ¡¡¡¡¡¡¡¡¡¡117106¡¡bytes sent via SQL*Net to client ¡¡¡¡¡¡¡¡¡¡ 56497¡¡bytes received via SQL*Net from client ¡¡¡¡¡¡¡¡¡¡¡¡ 436¡¡SQL*Net roundtrips to/from client ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 1¡¡sorts (memory) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 0¡¡sorts (disk) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡40¡¡rows processed ¡¡¡¡¡¡ ¡¡¡¡ÔÚorder byÀï¼ÓÉÏË÷Òýǰµ¼ÁУ¬Ïû³ýÁË ¡¡¡¡¡¡¡¡6¡¡¡¡5¡¡¡¡¡¡¡¡¡¡¡¡ SORT (ORDER BY STOPKEY) (Cost=264 Card=18344 Byt ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ es=440256) ¡¡¡¡£¬°Ñconsistent gets´Ó2080½µµ½550¡¡
|
|