SQL SERVERÖÐÁÙʱ±í¡¢³Ö¾Ã±í¡¢±í±äÁ¿µÄÇø±ð
Óë³Ö¾Ã±íÒ»Ñù£¬ÓÅ»¯Æ÷´´½¨²¢Î¬»¤ÁÙʱ±íµÄ·Ö²¼Í³¼ÆÐÅÏ¢£¬²¢¸ú×ÙËüµÄ»ùÊý¡£µ±Ë÷ÒýÁÙʱ±íʱ£¬ÕâÖÖÄÜÁ¦ÓÈÆäÖØÒª¡£µ±ÓÅ»¯Æ÷ÐèÒªÆÀ¹ÀÑ¡ÔñÐÔʱ£¬Ëü¾Í¿ÉÒÔ¸ù¾ÝÕâЩ·Ö²¼Í³¼ÆÐÅÏ¢Éú³É¾¹ýÓÅ»¯µÄ¼Æ»®¡£ÕâÊÇÁÙʱ±íÔÚÐÔÄÜ·½Ã治ͬÓÚ±í±äÁ¿µÄÖ÷ÒªÌØÐÔÖ®Ò»¡£
´ËÍ⣬ÒòΪÁÙʱ±í»áά»¤Í³¼ÆÐÅÏ¢£¬Èç¹ûÉϴαàÒëºó±»ÒýÓñíÓÐ×ã¹»¶àµÄÐз¢Éú±ä»¯£¨¼´´ïµ½ÖØÐ±àÒë·§Öµ£©´úÂë»á±»ÖØÐ±àÒë¡£ÖØÐ±àÒë¡£ÖØÐ±àÒë·§ÖµÊǸù¾Ý±íÀàÐͺÍÐÐÊý¼ÆËãµÃ³öµÄ¡£
¶ÔÓڳ־ñíÀ´Ëµ£¬Èç¹ûn<=500,ÔòRT=500£¨n=µ±±àÒë²éѯ¼Æ»®Ê±±íµÄ»ùÊý£©£»Èç¹ûn>500£¬ÔòRT=500+0.20*n¡£
¶ÔÓÚÁÙʱ±í£¬Èç¹ûn<6£¬ÔòRT=6£»Èç¹û6<=n<=500£¬ÔòRT=500£»Èç¹ûn>500£¬ÔòRT=500+0.20*n¡£ÀýÈ磬ÏòÁÙʱ±íÖмÓÔØ6Ðкó£¬ÔÙÔö¼ÓµÚ7Ðн«µ¼ÖÂÖØÐ±àÒ룬¶ø³Ö¾Ã±íºÜÍí²Å»á³öÏÖµÚÒ»´ÎÖØÐ±àÒë¡£Èç¹ûÄãÏëÔÚ²éѯÁÙʱ±íʹÓÃKEEP PLAN²éѯÌáʾ¼´¿É¡£
ÓÅ»¯Æ÷ά»¤ÁÙʱ±íµÄ·Ö²¼Í³¼ÆÐÅÏ¢ÕâÒ»ÌØµã¼°ÉÏÊö½áÂÛÊÇÑ¡ÔñÁÙʱ¶ÔÏóÀàÐ͵Ä×îÖØÒªÌØÕ÷¡£µ±´ÓÁÙʱ±íºÍ±í±äÁ¿ÖÐ×ö³öÑ¡Ôñʱ£¬ÕâЩÒòËØÓÈÎªÖØÒª£¬ÓÅ»¯Æ÷²»»áΪ±í±äÁ¿´´½¨»òά»¤·Ö²¼Í³¼ÆÐÅÏ¢¡£ËäȻҲΪ±í±äÁ¿Î¬»¤ÐмÆÊýÐÅÏ¢£¬µ«Õâ¸öÐÅϢͨ³£²»×¼È·¡£±í±äÁ¿×Ô¼º²»»áÒýÆðÖØÐ±àÒ룬¶øÖØÐ±àÒë¶ÔÓÚ¸üÐÂÐмÆÊýÀ´ËµÊDZØÐëµÄ¡£ÔÚSQL SERVER 2005ÖУ¬¿ÉÒÔʹÓÃRECOMPILE²éѯÌáʾÒÔÇ¿ÖÆÖØÐ±àÒë°üº¬±í±äÁ¿µÄ²éѯ¡£×ÜÖ®£¬±í±äÁ¿²»·¢Éú×÷ÓÃÓÚÓÅ»¯µÄÖØÐ±àÒë¡£
ÎÒÃDZØÐëÎÊ×Ô¼ºÁ½¸öÎÊÌ⣺
1.ÓÅ»¯Æ÷ÐèÒª·Ö²¼Í³¼ÆÐÅÏ¢»ò¾«È·»ùÊýÆÀ¹ÀÀ´Éú³É¸ßЧµÄÖ´Ðмƻ®Âð£¿Èç¹ûÐèÒª£¬µ±Í³¼ÆÐÅÏ¢ÎÞЧʱ£¬Ê¹ÓõÍЧ¼Æ»®µÄ³É±¾ÊÇʲô£¿
2.ʹÓÃÁÙʱ±íÊ±ÖØÐ±àÒëµÄ³É±¾ÊÇʲô£¿
ÓÐʱÓÅ»¯Æ÷²»ÐèҪͳ¼ÆÐÅÏ¢¾Í¿ÉÒÔ¼ÆËã³ö×î¼Ñ¼Æ»®¡£ÀýÈ磬´Ó±íÖзµ»ØËùÓÐÐеIJéѯ£¬ÔÚ¶¨ÒåÁËΨһË÷ÒýµÄÁÐÉÏÖ´Ðеĵã²éѯ£¬ÀûÓþۼ¯Ë÷Òý»ò¸²¸ÇË÷ÒýµÄ·¶Î§²éѯµÈ¡£ÔÚÕâЩÇé¿öÏ£¬²»ÂÛ±íµÄ´óС£¬¶¼²»»áÓõ½Í³¼ÆÐÅÏ¢£¬Ö»»á²úÉúÖØÐ±àÒëµÄ¿ªÏú¡£Õâʱ£¬¿ÉÒÔ¿¼ÂÇʹÓñí±äÁ¿¡£
´ËÍ⣬µ±±í·Ç³£Ð¡Ê±£¬¿ÉÑ¡µÄ·½·¨ÓУº
1£©Ê¹Óñí±äÁ¿£¬Ö´ÐÐÍêȫɨÃ裬¼¸ºõ»ò¸ù±¾Ã»ÓÐÖØÐ±àÒ룻
2£©Ê¹ÓÃÁÙʱ±í£¬Ö´ÐÐindex seek,²úÉú¸ü¶àµÄÖØÐ±àÒë¡£ÓÉÓÚÖØÐ±àÒëµÄȱµã£¬seekµÄÓÅÊÆÒ²Ðí±È²»ÉÏscan.ÕâÖÖÇé¿öÒ²Ó¦¸Ã¿¼ÂÇʹÓñí±äÁ¿¡£
ÁíÒ»·½Ã棬Èç¹ûÓÅ»¯Æ÷µÄÈ·ÐèҪͳ¼ÆÐÅÏ¢¿ÉÒÔÉú³É¸ßЧµÄÖ´Ðмƻ®£¬¶øÇÒÄãʹÓõÄÓÖ²»ÊÇС±í£¬ÄÇôʹÓõÍЧ¼Æ»®µÄ³É±¾¿ÉÄܱÈÖØÐ±àÒëµÄ³É±¾Òª¸ßµÃ¶à¡£ÕâʱӦ¸Ã¿¼ÂÇʹÓÃÁÙʱ±í¡£
Ïà¹ØÎĵµ£º
create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',
@pagesize int output,--ÿҳÏÔʾ¼Ç¼ÌõÊý
@currentpage int output,--µÚ¼¸Ò³
@orderid nvarchar(50),--Ö÷¼üÅÅÐò
@sort int,--ÅÅÐò·½Ê½£¬1±íʾÉýÐò£¬0±íʾ½µÐòÅÅÁÐ
......
ϵͳ»·¾³£ºWindows 7
Èí¼þ»·¾³£ºVisual C++ 2008 SP1 +SQL Server 2005
±¾´ÎÄ¿µÄ£º±àдһ¸öº½¿Õ¹ÜÀíϵͳ
ÕâÊÇÊý¾Ý¿â¿Î³ÌÉè¼ÆµÄ³É¹û£¬ËäÈ»³É¼¨²»¼Ñ£¬µ«ÊÇ×÷ΪÎÒÓÃVC++ ÒÔÀ´±àдµÄ×î´ó³ÌÐò»¹ÊÇ´«µ½ÍøÉÏ£¬ÒÔ¹©²Î¿¼¡£ÓÃVC++ ×öÊý¾Ý¿âÉè¼Æ²¢²»ÈÝÒ×£¬µ«Ò²²»ÊDz»¿ÉÄÜ¡£ÒÔÏÂÊÇÎҵijÌÐò½çÃæ£¬ºóÃæ ......
±êÇ©£ºÊý¾Ý·ÃÎÊ ADO.NET
µ÷ÓÃSQL´æ´¢¹ý³Ì ´æ´¢¹ý³ÌÔÚÒ»¸öµ¥ÔªÖзâ×°Á˸´ÔÓµÄSQL²éѯºÍÊý¾Ý¹ý³Ì£¬¿ÉÒÔÓɶà¸ö³ÌÐò»òÓû§Ö®¼äµ÷Óá£
Àý£º
......
USE master
GO
CREATE DATABASE testbase2
ON
PRIMARY
(NAME = prim_sub_dat1,
FILENAME = 'G:\SQL SERVER2000\prim_sub_dat.mdf',
SIZE = 5MB,
MAXSIZE = 50MB,
FILEGROWTH = 20%),
(NAME = prim_sub_dat2,
FILENAME = 'G:\SQL SERVER2000\prim_sub_dat.ndf'
SIZE = 5MB,
MAXSIZE = 50MB,
......
¡¡¡¡º¯ÊýÊÇÒ»ÖÖÓÐÁã¸ö»ò¶à¸ö²ÎÊý²¢ÇÒÓÐÒ»¸ö·µ»ØÖµµÄ³ÌÐò¡£ÔÚSQLÖÐOracleÄÚ½¨ÁËһϵÁк¯Êý£¬ÕâЩº¯Êý¶¼¿É±»³ÆÎªSQL»òPL/SQLÓï¾ä£¬º¯ÊýÖ÷Òª·ÖΪÁ½´óÀࣺ
¡¡¡¡ µ¥Ðк¯Êý
¡¡¡¡ ×麯Êý
¡¡¡¡±¾ÎĽ«ÌÖÂÛÈçºÎÀûÓõ¥Ðк¯ÊýÒÔ¼°Ê¹ÓùæÔò¡£
¡¡¡¡SQLÖеĵ¥Ðк¯Êý
¡¡¡¡SQLºÍPL/SQLÖÐ×Ô´øºÜ¶àÀàÐ͵ĺ¯Êý£¬ÓÐ×Ö·û¡¢Êý×Ö¡¢ÈÕÆÚ¡ ......