×î´ó³Ì¶È½µµÍ 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 ²éѯ²»ÄÜ°´ÕÕÄúÏëÒªµÄ·½Ê½½øÐÐÏìÓ¦¡£ËüҪô²»·µ»ØÊý¾Ý£¬ÒªÃ´ºÄ·ÑµÄʱ¼ä³¤µÃ³öÆæ¡£Èç¹ûËü½µµÍÁ˱¨¸æ»òÄúµÄÆóÒµÓ¦ÓóÌÐòµÄËٶȣ¬Óû§±ØÐëµÈ´ýµÄʱ¼ä¹ý³¤£¬ËûÃǾͻá ......
varcharºÍnvarcharÈçºÎÑ¡Ôñ£º
varcharÔÚSQL ServerÖÐÊDzÉÓõ¥×Ö½ÚÀ´´æ´¢Êý¾ÝµÄ£¬nvarcharÊÇʹÓÃUnicoÀ´´æ´¢Êý¾ÝµÄ¡£ÖÐÎÄ×Ö·û´æ´¢µ½SQL ServerÖлᱣ´æΪÁ½¸ö×Ö½Ú£¨Ò»°ã²ÉÓÃUnico±àÂ룩£¬Ó¢ÎÄ×Ö·û±£´æµ½Êý¾Ý¿âÖУ¬Èç¹û×ֶεÄÀàÐÍΪvarchar£¬ÔòÖ»»áÕ¼ÓÃÒ»¸ö×Ö½Ú£¬¶øÈç¹û×ֶεÄÀàÐÍΪnvarchar£¬Ôò»áÕ¼ÓÃÁ½¸ö×Ö½Ú¡£ËäȻʹÓÃnva ......
insert into A ±í select * from B ±í;
ÔÚoracleÖУ¬Ã¿¸öÓû§Ö»ÄܲÙ×÷×Ô¼ºµÄ±í£¬Òª²Ù×÷ÆäËûÓû§µÄ±íÊÇÐèÒªÆäËûÓû§¸³È¨Ï޵ġ£
grant ȨÏÞ on table to user;
eg:grant select on table to newuser;
ÈôÒª½øÐÐÁ¬½Ó¾ÍÒªÊÚÓè(resource connect Á½¸ö½ÇÉ«) ......
ÏÈ˵˵ÕâЩÎóÇø¡£Ëùν“ÎóÇø”£¬ÓÐһЩÊÇÐÂÊÖºÜÈÝÒ×·¸µÄ´íÎó»òÕߺÜÈÝÒ׺öÂÔµÄÎÊÌ⣬ÁíÍâһЩ£¬ÔòÊÇÏñ“ºÄ×Ó³ÔÁËÑλá±ä³Éòùòð”Ò»Ñù£¬ÈÃÎÒÃÇ´ÓС¾ÍÈÏΪÊÇÕýÈ·µÄÊÂÇé¡£ÈçÏ£º
1¡¢ ±íÉϲ»¹ÜÓõÃ×ÅÓò»×Å£¬¶¼¼Ó¸ö¾Û¼¯Ë÷Òý¡£
ÎÒÃÇÖªµÀ£¬±íÒÔÁ½ÖÖ·½Ê½×éÖ¯ÎïÀí´æ´¢£ºÓоۼ¯Ë÷ÒýµÄ“¾Û¼¯±í&r ......
½ñÌì×öSQL ÓÅ»¯£¬²éÕÒÖ´Ðмƻ®Ê±£¬Ö´Ðмƻ®£¬·¢ÏÖ´ËÖ´Ðмƻ®ÓëÒÔÍùµÄ¼Æ»®ÓÐËùÇø±ð£»ÕÒ¼»¥ÁªÍø£¬ÖÕÓÚÕÒһƪÓйØÑо¿±È½ÏÉîÈëµÄÎÄÕ£»
ÔÖ´Ðмƻ®Ê¹ÓõÄÊÇË÷ÒýɨÃ裬ͻȻһÏ»áʹÓÃË÷Òý¸²¸Ç¼¼Êõ£¬Ð§ÂÊ´óÔö£»
SELECT * µÄÕæÏࣺË÷Òý¸²¸Ç(index coverage)
SELECT *µÄЧÂʺÜÔã¸âÂ𣿵±È»£¬ËùÓÐÈ˶¼ÖªµÀÕâÒ»µã£¬µ«ÊÇΪʲôÄØ£ ......