ÈçºÎÓà SQL Tuning Advisor (STA) ÓÅ»¯SQLÓï¾ä
ÔÚOracle10g֮ǰ£¬ÓÅ»¯SQLÊǸö±È½Ï·ÑÁ¦µÄ¼¼Êõ»î£¬²»Í£µÄ·ÖÎöÖ´Ðмƻ®£¬¼Óhint£¬·ÖÎöͳ¼ÆÐÅÏ¢µÈµÈ¡£ÔÚ10gÖУ¬OracleÍÆ³öÁË×Ô¼ºµÄSQLÓÅ»¯¸¨Öú¹¤¾ß: SQLÓÅ»¯Æ÷(SQL Tuning Advisor £ºSTA)£¬ËüÊÇеÄDBMS_SQLTUNE°ü¡£Ê¹ÓÃSTAÒ»¶¨Òª±£Ö¤ÓÅ»¯Æ÷ÊÇCBOģʽÏ¡£
Ö´ÐÐDBMS_SQLTUNE°ü½øÐÐsqlÓÅ»¯ÐèÒªÓÐadvisorµÄȨÏÞ£º
SQL> create user dave identified by dave;
Óû§ÒÑ´´½¨¡£
SQL> grant connect,resource to dave;
ÊÚȨ³É¹¦¡£
SQL> grant advisor to dave;
ÊÚȨ³É¹¦¡£
ÏÂÃæ¼òµ¥½éÉÜÒ»ÏÂÈçºÎÓÅ»¯Ò»ÌõÕÒµ½µÄÎÊÌâÓï¾ä¡£
create table bigtab as select rownum as "id",a.* from sys.all_objects a;
create table smalltab as select rownum as "id", a.* from sys.all_tables a;
È»ºó¶àÔËÐм¸´ÎÏÂÃæµÄ½Å±¾£¬Ôö¼Ó±íÀïµÄÊý¾Ý£º
insert into bigtab select rownum as "id",a.* from sys.all_objects a;
insert into smalltab select rownum as "id", a.* from sys.all_tables a;
ÕâÀï´´½¨Ò»ÕÅ´ó±íºÍÒ»ÕÅС±í£¬²¢ÇÒ¶¼Ã»ÓÐË÷Òý£¬ÏÂÃæÖ´ÐÐÒ»¸ö²éѯ£º
SQL> set timing on
SQL> set autot on
SQL> select count(*) from bigtab a, smalltab b where a.object_name=b.table_name;
COUNT(*)
----------
2141537
ÒÑÓÃʱ¼ä: 00: 00: 20.05
Ö´Ðмƻ®
----------------------------------------------------------
Plan hash value: 3089226980
--------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------
Ïà¹ØÎĵµ£º
×î½üÔÚÓÃsqlcmd¹¤¾ß½øÐÐÊý¾Ý±¸·Ý£¬½ñÌìÔÚ»»µ½sql2000ʱͻȻ²»ÄÜÓá£ÔÀ´2000ÊÇûÓÐÕâ¸ö¹¤¾ßµÄ£º
sql2005:
sqlcmd -S ·þÎñÆ÷Ãû»ò·þÎñÆ÷µØÖ· -U Óû§ -P ÃÜÂë -i "ÒýÓõÄsqlÓï¾äÎļþ"
sql2000:¿ÉÒÔÓÃosql´úÌæ£¬¹¦ÄÜÒ»Ñù
osql -S ·þÎñÆ÷Ãû»ò·þÎñÆ÷µØÖ· -U Óû§ -P ÃÜÂë -i "ÒýÓõÄsqlÓï¾äÎļþ" ......
×¼±¸½«Ò»¸öexcel±íµ¼ÈëSQL Server2005Öз¢ÉúÁËÏÂͼµÄ´íÎó£º
ÖØÆôSQL Server2005»¹ÊdzöÏÖÉÏͼµÄ´íÎ󣬽â¾ö·½·¨£¨ÈçÏÂͼ£©£º
ÔÚSQL Server Configuration ManagerÖн«SSIS¼´SQL Server Integration ServicesµÄÊôÐÔÖеÄÄÚÖÃÕË»§¸ÄΪ“±¾µØÏµÍ³”£¬ÖØÆô·þÎñ¼´¿Éµ¼ÈëexcelÁË¡£ ......
with HostDevice as (----ÉÌ»§Ö÷»ú
select TerminalID ,Deviceid hostDeviceid ,Device.ModelID,Device.SN HostSN,Device.MerchantID,Device.InstallAddress,Device.SoftVersion
from Device
join model HostM on Device.ModelID=HostM.ModelID and HostM.Category in(0,3,4,5,6,8)
--where TerminalID is not null
) ......
Ò»¡¢Ç°ÑÔ
“ÈËÀàʧȥËÑË÷£¬ÊÀ½ç½«»áÔõÑù?”£¬Í¬Ñù£¬ºÜÄÑÏëÏóÒ»¸öÓµÓм«´óÐÅÏ¢Á¿µÄÐÐÒµÍøÕ¾ÃÅ»§Ã»ÓÐÕ¾ÄÚÈ«ÎÄËÑË÷½«»á³öÏÖÔõÑùµÄ¾ÖÃæ£¬ÍøÕ¾È«ÎļìË÷¶ÔÓÚÍÚ¾òÍøÕ¾ÐÅÏ¢ºÍÕûºÏÍøÕ¾×ÊÔ´µÄ¼ÛÖµÊDz»ÑÔ¶øÓ÷µÄ¡£ÎÒÃÇ¿´µ½£¬Í¨ÓÃÐ͵ÄËÑË÷ÒýÇæÒѾ³ÉΪÁË»¥ÁªÍøÊÀ½çµÄÃÅ»§£¬¶ø¶ÔÓÚÒ»¸öÐÅÏ¢Á¿¼«Æä·á¸»µÄÍøÕ¾¶øÑÔ£¬È«ÍøËÑË÷»òÐ ......
COUNT(*)ÓëCOUNT(COL)
ÍøÉÏËÑË÷ÁËÏ£¬·¢ÏÖ¸÷ÖÖ˵·¨¶¼ÓУº
±ÈÈçÈÏΪCOUNT(COL)±ÈCOUNT(*)¿ìµÄ£»
ÈÏΪCOUNT(*)±ÈCOUNT(COL)¿ìµÄ£»
»¹ÓÐÅóÓѺܸãЦµÄ˵µ½Õâ¸öÆäʵÊÇ¿´ÈËÆ·µÄ¡£
ÔÚ²»¼ÓWHEREÏÞÖÆÌõ¼þµÄÇé¿öÏ£¬COUNT(*)ÓëCOUNT(COL)»ù±¾¿ÉÒÔÈÏΪÊǵȼ۵ģ»
µ«ÊÇÔÚÓÐWHEREÏÞÖÆÌõ¼þµÄÇé¿öÏ£¬COUNT(*)»á±ÈCOUNT(COL)¿ì·Ç³£¶à ......