ÈçºÎÓà 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 |
----------------------------------------------------
Ïà¹ØÎĵµ£º
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
) ......
¿ìÕÕ¸ôÀë Snapshot Isolation
1¡¢Ð´Èë³ÌÐò²»»á×è°¶ÁÈ¡³ÌÐò
2¡¢ÐµĸôÀë¼¶±ðÌṩÁËÒÔÏÂÓŵ㣺
1) Ìá¸ßÁËÖ»¶ÁÓ¦ÓóÌÐòµÄÊý¾Ý¿ÉÓÃÐÔ
2) ÔÊÐíÔÚOLTP»·¾³ÖÐÖ´ÐзÇ×èÖ¹¶ÁÈ¡²Ù×÷
3) ¿É¶ÔдÈëÊÂÎñ½øÐÐ×Ô¶¯µÄÇ¿ÖÆ³åÍ»¼ì²â
3¡¢ÑÝʾ´úÂë
CREATE DATABASE demo2
GO
USE demo2
ALTER DATABASE demo2 SET allow_snapsho ......
ͨÓñí±í´ïʽ Common Table Expressions
ͨÓñí±í´ïʽ£¨CTE£©ÊÇÒ»¸ö¿ÉÒÔÓɶ¨ÒåÓï¾äÒýÓõÄÁÙʱ±íÃüÃûµÄ½á¹û¼¯¡£ÔÚËûÃǵļòµ¥ÐÎʽÖУ¬Äú¿ÉÒÔ½«CTEÊÓΪÀàËÆÓÚÊÓͼºÍÅÉÉú±í»ìºÏ¹¦ÄܵĸĽø°æ±¾¡£ÔÚ²éѯµÄfrom×Ó¾äÖÐÒýÓÃCTEµÄ·½Ê½ÀàËÆÓÚÒýÓÃÅÉÉú±íºÍÊÓͼµÄ·½Ê½¡£Ö»Ð붨ÒåCTEÒ»´Î£¬¼´¿ÉÔÚ²éѯÖжà´ÎÒýÓÃËü¡£ÔÚCTEµÄ¶¨ÒåÖУ¬¿ÉÒÔÒ ......
ÅÅÃûº¯ÊýÊÇSQL Server2005мӵŦÄÜ¡£ÔÚSQL Server2005ÖÐÓÐÈçÏÂËĸöÅÅÃûº¯Êý£º
¡¡¡¡1. row_number
¡¡¡¡2. rank
¡¡¡¡3. dense_rank
¡¡¡¡4. ntile
¡¡¡¡Ò»¡¢row_number
¡¡¡¡row_numberº¯ÊýµÄÓÃ;ÊǷdz£¹ã·º£¬Õâ¸öº¯ÊýµÄ¹¦ÄÜÊÇΪ²éѯ³öÀ´µÄÿһÐмǼÉú³ÉÒ»¸öÐòºÅ¡£row_numberº¯ÊýµÄÓ÷¨ÈçÏÂÃæµÄSQLÓï¾äËùʾ£º
¡¡¡¡sel ......
Ò»¡¢Ç°ÑÔ
“ÈËÀàʧȥËÑË÷£¬ÊÀ½ç½«»áÔõÑù?”£¬Í¬Ñù£¬ºÜÄÑÏëÏóÒ»¸öÓµÓм«´óÐÅÏ¢Á¿µÄÐÐÒµÍøÕ¾ÃÅ»§Ã»ÓÐÕ¾ÄÚÈ«ÎÄËÑË÷½«»á³öÏÖÔõÑùµÄ¾ÖÃæ£¬ÍøÕ¾È«ÎļìË÷¶ÔÓÚÍÚ¾òÍøÕ¾ÐÅÏ¢ºÍÕûºÏÍøÕ¾×ÊÔ´µÄ¼ÛÖµÊDz»ÑÔ¶øÓ÷µÄ¡£ÎÒÃÇ¿´µ½£¬Í¨ÓÃÐ͵ÄËÑË÷ÒýÇæÒѾ³ÉΪÁË»¥ÁªÍøÊÀ½çµÄÃÅ»§£¬¶ø¶ÔÓÚÒ»¸öÐÅÏ¢Á¿¼«Æä·á¸»µÄÍøÕ¾¶øÑÔ£¬È«ÍøËÑË÷»òÐ ......