SQLServerË÷Òýµ÷ÓÅʵ¼ù(2) Ë÷Òý¸²¸Ç
¼ÌÐøSQLServerË÷Òýµ÷ÓÅʵ¼ù¡£Õâ´Î̽ÌÖÒ»ÏÂË÷Òý¸²¸Ç - SQL ServerÖ÷ҪʹÓÃË÷ÒýÈ¥²éѯÄãÐèÒªµÄÊý¾Ý£¬µ±Ë÷Òý°üÀ¨ËùÓеÄÄãÇëÇó²éѯµÄ×ֶΣ¬SQL Server½«²»ÐèҪȥÔÚ±íÖвéѯ¡£Õâ¸ö¸ÅÄî³Æ×ö“Ë÷Òý¸²¸Ç”¡£
SQLServer2005µÄNon-clustered INDEXÔö¼ÓÁËÒ»¸ö“°üº¬ÁÐ(included column)
”Ñ¡Ïî¡£ÔÚ SQL Server 2005
ÖУ¬¿ÉÒÔͨ¹ý½«·Ç¼üÁÐÌí¼Óµ½·Ç¾Û¼¯Ë÷ÒýµÄÒ¶¼¶±ðÀ´À©Õ¹·Ç¾Û¼¯Ë÷ÒýµÄ¹¦ÄÜ¡£Í¨¹ý°üº¬·Ç¼üÁУ¬¿ÉÒÔ´´½¨¸²¸Ç¸ü¶à²éѯµÄ·Ç¾Û¼¯Ë÷Òý¡£µ±²éѯÖеÄËùÓÐÁж¼×÷Ϊ¼üÁÐ
»ò·Ç¼üÁаüº¬ÔÚË÷ÒýÖÐʱ£¬´øÓаüº¬ÐԷǼüÁеÄË÷Òý¿ÉÒÔÏÔÖøÌá¸ß²éѯÐÔÄÜ¡£ÕâÑù¿ÉÒÔʵÏÖÐÔÄÜÌáÉý£¬ÒòΪ²éѯÓÅ»¯Æ÷¿ÉÒÔÔÚË÷ÒýÖÐÕÒµ½ËùÓÐÁÐÖµ£»²»·ÃÎʱí»ò¾Û¼¯
Ë÷ÒýÊý¾Ý£¬´Ó¶ø¼õÉÙ´ÅÅÌ I/O ²Ù×÷¡£
µ«Ó¦±ÜÃâÌí¼Ó²»±ØÒªµÄÁС£Ìí¼Ó¹ý¶àµÄË÷ÒýÁУ¨¼üÁлò·Ç¼üÁУ©»á¶ÔÐÔÄܲúÉú²»Á¼Ó°Ï죬Ӧ¸ÃºÏÀíʹÓ᣺ÍClustered
INDEX£¬»òÕß×éºÏË÷Òý£¬½áºÏʹÓã¬À©´óË÷Òý¸²¸Ç£¬µ«²»´ó¿ÉÄÜËùÓÐÁж¼ÓÐË÷Òý¸²¸Ç£¬´ÅÅÌ¿ªÏúºÍÊý¾Ýinsert
updatʱË÷ÒýµÄÖØÐ¼ÆËãµÄʱ¼ä¿ªÏúÊǾ޴óµÄ¡£×ÜÖ®£¬ºÏÀíµÄË÷ÒýÉè¼ÆÊǽ¨Á¢ÔÚ¶Ô¸÷ÖÖ²éѯµÄ·ÖÎöºÍÔ¤²âÉϵģ¬Ö»ÓÐÕýÈ·µØÊ¹Ë÷ÒýÓë³ÌÐò½áºÏÆðÀ´,²ÅÄܲúÉú×î
¼ÑµÄÓÅ»¯·½°¸¡£
¼ÌÐøÊµ¼ù£¬ÏȽ¨¸öʵÑé±í Table1£º
½¨Á½¸öË÷Òý£º
1. Ö÷¼üIDÊÇClustered INDEX
2. ·Ç¾Û´ØË÷ÒýNon-Clustered INDEX½¨Á¢ÔÚAgeÁÐÉÏ£¬°üº¬ÁУºCount¡£
CREATE NONCLUSTERED INDEX [cnt] ON [dbo].[table1]
(
[Age] ASC
)
INCLUDE ( [Count])
ON [PRIMARY]
ÎÒÃǵIJâÊÔSQLÓï¾äÊÇ£º´Ó10ÍòÌõ¼Ç¼ÖÐÈ¡³ö4Ìõ¼Ç¼£¬Á½ÖÖд·¨
1. SELECT *
from table1 WHERE age < 100;
2. SELECT count
from table1 WHERE age < 100;
¿´¿´ÔËÐÐЧÂÊÈçºÎ£º
´ÅÅÌIOºÍʱ¼ä£º
ʵ¼ÊÖ´Ðмƻ®£º
ÐÔÄܾÓÈ»Ïà²î20¶à±¶¡£ÎªÊ²Ã´£¿
ÔÀ´µÚ¶þ¾äSelect Count
ÔÚË÷Òý¸²¸Ç·¶Î§ÄÚ£¬ÒòΪ²éѯÓÅ»¯Æ÷¿ÉÒÔÔÚË÷ÒýÖÐÕÒµ½ËùÓÐÁÐÖµ£»²»·ÃÎʱí»ò¾Û¼¯Ë÷ÒýÊý¾Ý£¬´Ó¶ø¼õÉÙ´ÅÅÌ I/O ²Ù×÷¡£¶øµÚÒ»¾äSelect *
Ñ¡ÔñÁËËùÓÐ×ֶΣ¬ÆäÖÐÓÐÒ»¸ö×Ö¶ÎName²»ÔÚË÷Òý¸²¸Ç·¶Î§ÄÚ£¨¼È²»ÔÚ¾Û´ØË÷ÒýÁУ¬Ò²²»ÔڷǾ۴ØË÷Òý¸²¸ÇÁÐÄÚ£©£¬SQL
Server¿ÉÒÔÔÚͬһ¸ö²éѯÖÐΪһ¸ö±íʹÓöà¸öË÷Òý£¬²¢¿ÉÒԺϲ¢¶à¸öË÷Òý£¨Ê¹ÓÃÁª½ÓËã·¨£©£¬ÒÔ±ãËÑË÷¹Ø¼ü×Ö¹²Í¬¸²¸ÇÒ»¸ö²éѯ¡£²éѯ·ÖÎöÓÅ»¯Æ÷»á×Ô¶¯½øÐÐ
Ñ¡Ôñ, ÉÏÊöÖ´Ðмƻ®¾ÍÊÇÓÅ»¯µÄ½á¹û£¬ÒÀÈ»±ÈµÚ¶þ¸öindex seekÂýÁË20±¶¡£
È»ºóÎÒÓÖ°Ñsql¸ÄÁËһϣ¬±ä³É´Ó10ÍòÌõ
Ïà¹ØÎĵµ£º
Sql ServerµÄ´æ´¢¹ý³ÌÊÇÒ»¸ö±»ÃüÃûµÄ´æ´¢ÔÚ·þÎñÆ÷ÉϵÄTransacation-SqlÓï¾ä¼¯ºÏ,ÊÇ·â×°ÖØ¸´ÐÔ¹¤×÷µÄÒ»ÖÖ·½·¨,ËüÖ§³ÖÓû§ÉùÃ÷µÄ±äÁ¿¡¢Ìõ¼þÖ´ÐÐºÍÆäËûÇ¿´óµÄ±à³Ì¹¦ÄÜ¡£
´æ´¢¹ý³ÌÏà¶ÔÓÚÆäËûµÄÊý¾Ý¿â·ÃÎÊ·½·¨ÓÐÒÔϵÄÓŵ㣺
&nbs ......
jdbcÅäÖÃÓï¾äΪ: jdbc:microsoft:sqlserver://server_name:1433
ÈçÔËÐгÌÐòʱ³öÏÖ "Error establishing socket" ´íÎó,ÔòÓ¦½øÐÐÈçϵ÷ÊÔ:
1 ¼ì²éSQL SERVER ÊÇ·ñÔÊÐíÔ¶³Ì·ÃÎÊ.¾ßÌå²½Öè:
1)´ò¿ª"ÆóÒµ¹ÜÀíÆ÷",´ò¿ª¿ØÖÆÌ¨¸ùĿ¼>SQL Server ×é>Êý¾Ý¿â
2)ÔÚÏàÓ¦"Êý¾Ý¿â"Éϵ¥»÷ÓÒ¼ü,Ñ¡Ôñ"ÊôÐÔ"
3)Ñ¡Ôñ"Á¬½Ó"Ñ ......
SqlServer ±íÖе±Ö®Ç°ÓмǼµÄʱºò·¢ÏÖ±íÉè¼ÆµÄ²»ºÏÀíÒª¼Ó×ֶΣ¬
µ«ÊÇalter table Skating_Consumption add MemberCardId numeric(9)Ö»ÄܼӿÉΪ¿ÕµÄ×ֶΣ¬
½â¾ö°ì·¨£¬
µÚÒ»¡¢¼Ó¸öΪ¿ÕµÄ×Ö¶Î
µÚ¶þ¡¢¸üбíÖмǼÕâ¸ö×Ö¶ÎΪij¸öÖµ
µÚÈý¡¢ÔÙ¸ü¸Ä±í×Ö¶ÎΪ·Ç¿Õ
Óï¾ä
alter table Skating_Consumption add MemberCardId nu ......