×î´ó³Ì¶È½µµÍ SQL Server ÖеÄ×èÈû
http://technet.microsoft.com/zh-cn/magazine/2008.04.blocking.aspx
SQL Server
×î´ó³Ì¶È½µµÍ SQL Server ÖеÄ×èÈû
Cherié Warren
¸ÅÀÀ:
·¢ÉúËøÉý¼¶µÄÔÒò
±ÜÃâ²»±ØÒªµÄ×èÈû
ÓÅ»¯²éѯ
¼àÊÓËø¶¨¶ÔÐÔÄܵÄÓ°Ïì
Ëø¶¨¶ÔÖ§³ÖÊý¾Ý¿âµÄ²¢·¢¶Áд»î¶¯¶øÑÔÊDZØÐèµÄ£¬µ«×èÈûÈ´»á¶ÔϵͳÐÔÄܲúÉú¸ºÃæÓ°Ï죬ÓÐʱÈÃÈËÄÑÒÔ¾õ²ì¡£ÔÚ±¾ÎÄÖУ¬ÎÒ½«½éÉÜÈçºÎÓÅ»¯ SQL Server 2005 »ò SQL Server 2008 Êý¾Ý¿âÒÔ×î´ó³Ì¶È½µµÍ
×èÈû£¬ÒÔ¼°ÈçºÎ¼àÊÓϵͳÒÔ¸üºÃµØÁ˽âËø¶¨ÈçºÎ¶ÔÐÔÄܲúÉúÓ°Ïì¡£
Ëø¶¨ºÍÉý¼¶
SQL Server® ¸ù¾ÝÊÜÓ°ÏìµÄ¼Ç¼ÊýºÍϵͳÖдæÔڵIJ¢·¢»î¶¯À´Ñ¡Ôñ×îºÏÊʵÄËøÁ£¶È¡£Ä¬ÈÏÇé¿öÏ£¬SQL Server »áÑ¡Ôñ¾¡¿ÉÄÜСµÄËøÁ£¶È£¬Èç¹ûËü¿ÉÒÔ¸ü¸ßЧµØÊ¹ÓÃϵͳÄڴ棬Ôò½öÑ¡Ôñ´ÖÁ£¶ÈËø¡£Ö»Óе±ËøÉý¼¶»á¶Ô×ÜÌåϵͳÐÔÄÜ´øÀ´ºÃ´¦Ê±£¬SQL Server ²Å»áÉý¼¶Ëø¡£Èçͼ 1 Ëùʾ£¬µ±Ìض¨É¨ÃèÖÐËøµÄÊýÁ¿³¬¹ý 5,000 »òÕßϵͳÓÃÓÚËøµÄÄÚ´æÊý³¬¹ý¿ÉÓÃÈÝÁ¿Ê±£¬½«»á¿ªÊ¼Éý¼¶£º
Figure 1 ´ÙÊ¹ËøÉý¼¶µÄÌõ¼þ (µ¥»÷¸ÃͼÏñ»ñµÃ½Ï´óÊÓͼ)
µ±ËøÉèÖÃΪ 0 ʱ£¬Êý¾Ý¿âÒýÇæÊ¹Óà 24 % µÄ·ÇµØÖ·´°¿Ú»¯À©Õ¹£¨·Ç AWE£©ÄÚ´æ
µ±ËøÉèÖÃ·Ç 0 ʱ£¬Êý¾Ý¿âÒýÇæÊ¹Óà 40 % µÄ·Ç AWE ÄÚ´æ
Èç¹ûȷʵ·¢ÉúÁËÉý¼¶£¬ÔòʼÖÕ»áÉý¼¶µ½±í¼¶Ëø¡£
±ÜÃâ²»±ØÒªµÄ×èÈû
×èÈûÔÚÈκÎËøÁ£¶ÈÇé¿ö϶¼¿ÉÄÜ·¢Éú£¬µ«×èÈûµÄÏÔÏ̶ֳÈÈ´ÔÚÉý¼¶ºóÔö¼Ó¡£ËøÉý¼¶¿ÉÄÜÊÇÒ»¸öÐźţ¬ËµÃ÷ÄúµÄÓ¦ÓóÌÐòÔÚÉè¼Æ¡¢±àÂë»òÅäÖ÷½ÃæµÄЧÂʲ»¸ß¡£
×ñÑÊý¾Ý¿âÉè¼Æ»ù±¾ÔÀí£¨ÀýÈ磬ʹÓòÉÓÃÕ¼üµÄ±ê×¼»¯¼Ü¹¹ÒÔ¼°±ÜÃâÔÚÊÂÎñÐÔϵͳÖÐÖ´ÐдóÁ¿Êý¾Ý²Ù×÷£©ÊDZÜÃâ·¢Éú×èÈûµÄÖØÒªÊֶΡ£Èç¹ûδ×ñÑÕâЩÔÀí£¨ÀýÈ磬½«±¨¸æÏµÍ³´ÓÊÂÎñÐÔϵͳÖзÖÀë³öÀ´£¬»òÔڷǹ¤×÷ʱ¼ä´¦ÀíÊý¾ÝÀ¡ËÍ£©£¬ÔòϵͳÓÅ»¯½«»áºÜÀ§ÄÑ¡£
Ë÷Òý±àÖÆ¿ÉÄÜÊǾö¶¨·ÃÎÊÊý¾ÝËùÐèËøÊýÁ¿µÄ¹Ø¼üÒòËØ¡£Ë÷Òý¿ÉÒÔͨ¹ý¼õÉÙÊý¾Ý¿âÒýÇæ±ØÐëÖ´ÐеÄÄÚ²¿²éÕÒ´ÎÊýÀ´¼õÉÙ²éѯ·ÃÎʵļǼÊý¡£ÀýÈ磬Èç¹ûÄú´ÓÒ»¸ö±íµÄ·ÇË÷ÒýÁÐÑ¡ÔñÒ»ÐУ¬Ôò±íÖеÄÿһÐж¼ÐèÒª±»ÁÙÊ±Ëø¶¨£¬Ö±µ½È·¶¨ÁËËùÐèµÄ¼Ç¼Ϊֹ¡£µ«ÊÇ£¬Èç¹û¶Ô¸ÃÁбàÖÆÁËË÷Òý£¬Ôò½öÐèÒªµ¥¸öËø¡£
SQL Server 2005 ºÍ SQL Server 2008 ¶¼°üº¬¶¯Ì¬¹ÜÀíÊÓͼ£¨sys.dm_db_missing_index_group_stats¡¢ sys.dm_db_missing_index_groups¡¢sys.dm_db_missing_index_details£©£¬ÕâЩÊÓͼ¸ù¾ÝÀÛ¼ÆÊ¹ÓÃÇé¿öͳ¼ÆÀ´ÏÔʾÄÇЩ½«»áµÃÒæÓÚË÷ÒýµÄ±íºÍÁС£
ËéÆ¬Ò²¿ÉÄÜÊÇÒ»¸öÒþº¬µÄÐÔÄÜÎÊÌ⣬Èç¹ûË鯬¹ý¶à£¬Êý¾Ý¿âÒýÇæ¿ÉÄÜÐèÒª·ÃÎʱȲÉÓÃÆäËû
Ïà¹ØÎĵµ£º
SQL Enlight 1.5 ÆÆ½â µÚ¶þ°æ ÊÕ²Ø
ÆÆ½âÉùÃ÷£ºÎÒµÄÆÆ½â½öÓÃÓÚÑо¿£¬ÇëÎðÓÃÓÚÉÌÒµÓÃ;£¬ÐèҪʹÓÃÇ빺ÂòÕý°æÈí¼þ¡£
¿É¶ñµÄUbitSoft£¬ÎÒµÄÆÆ½â³öÀ´»¹Ã»¼¸Ì죬ËûµÄ³ÌÐò¾Í¸Ä±äÁËÑéÖ¤Âß¼£¬ËäÈ»ÎÒ¾õµÃSQL EnlightµÄ¹¦Äܲ»ÊǷdz£Ç¿´ó£¬µ«ÊÇËûµÄ·ÀÆÆ½â¹¦Äܵ¹ÊÇÏÂÁ˲»ÉÙ¹¦·ò£¬³ýÁ˺ËÐÄ´úÂëÓÃvc++.net±àдµÄnative cod ......
ÓÐʱ£¬ ΪÁËÈÃÓ¦ÓóÌÐòÔËÐеøü¿ì£¬Ëù×öµÄÈ«²¿¹¤×÷¾ÍÊÇÔÚÕâÀï»òÄÇÀï×öһЩºÜСµ÷Õû¡£°¡£¬µ«¹Ø¼üÔÚÓÚÈ·¶¨ÈçºÎ½øÐе÷Õû£¡³ÙÔçÄú»áÓöµ½ÕâÖÖÇé¿ö£ºÓ¦ÓóÌÐòÖÐµÄ SQL ²éѯ²»Äܰ´ÕÕÄúÏëÒªµÄ·½Ê½½øÐÐÏìÓ¦¡£ËüҪô²»·µ»ØÊý¾Ý£¬ÒªÃ´ºÄ·ÑµÄʱ¼ä³¤µÃ³öÆæ¡£Èç¹ûËü½µµÍÁ˱¨¸æ»òÄúµÄÆóÒµÓ¦ÓóÌÐòµÄËÙ¶È£¬Óû§±ØÐëµÈ´ýµÄʱ¼ä¹ý³¤£¬ËûÃǾͻá ......
insert into A ±í select * from B ±í;
ÔÚoracleÖУ¬Ã¿¸öÓû§Ö»ÄܲÙ×÷×Ô¼ºµÄ±í£¬Òª²Ù×÷ÆäËûÓû§µÄ±íÊÇÐèÒªÆäËûÓû§¸³È¨Ï޵ġ£
grant ȨÏÞ on table to user;
eg:grant select on table to newuser;
ÈôÒª½øÐÐÁ¬½Ó¾ÍÒªÊÚÓè(resource connect Á½¸ö½ÇÉ«) ......
ÉÏ»ØÎÒÃÇ˵µ½ÆÀ¹ÀÒ»ÌõÓï¾äÖ´ÐÐЧÂÊÖ÷Òª¿´Âß¼ IO £¨É¶ÊÇÂß¼ IO £¬É¶ÊÇÎïÀí IO ¼ûÁª»úÎĵµ£©£¬Õâ´ÎÎÒÃǼÌÐø¡£
ÎÒÃÇÏÈ˵˵£¬·µ»Ø¶àÐнá¹ûʱ£¬ÎªÊ²Ã´ SQLServer ÓÐʱ»áÑ¡Ôñ index seek £¬ÓÐʱ»áÑ¡Ôñ index scan ¡£
ÒÔ nonclustered index ΪÀý˵Ã÷¡£
ÏñËùÓеÄË÷Òý B Ê÷Ò»Ñù£¬·Ç¾Û¼¯Ë÷ÒýÊ÷Ò²°üÀ¨ÍêÈ«ÓÉË÷ÒýÊý¾Ý×é³ÉµÄ¸ù½ ......
½ñÌì×öSQL ÓÅ»¯£¬²éÕÒÖ´Ðмƻ®Ê±£¬Ö´Ðмƻ®£¬·¢ÏÖ´ËÖ´Ðмƻ®ÓëÒÔÍùµÄ¼Æ»®ÓÐËùÇø±ð£»ÕÒ¼»¥ÁªÍø£¬ÖÕÓÚÕÒһƪÓйØÑо¿±È½ÏÉîÈëµÄÎÄÕ£»
ÔÖ´Ðмƻ®Ê¹ÓõÄÊÇË÷ÒýɨÃ裬ͻȻһÏ»áʹÓÃË÷Òý¸²¸Ç¼¼Êõ£¬Ð§ÂÊ´óÔö£»
SELECT * µÄÕæÏࣺË÷Òý¸²¸Ç(index coverage)
SELECT *µÄЧÂʺÜÔã¸âÂ𣿵±È»£¬ËùÓÐÈ˶¼ÖªµÀÕâÒ»µã£¬µ«ÊÇÎªÊ²Ã´ÄØ£ ......