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.ÕâÖÖÇé¿öÒ²Ó¦¸Ã¿¼ÂÇʹÓñí±äÁ¿¡£
ÁíÒ»·½Ã棬Èç¹ûÓÅ»¯Æ÷µÄÈ·ÐèҪͳ¼ÆÐÅÏ¢¿ÉÒÔÉú³É¸ßЧµÄÖ´Ðмƻ®£¬¶øÇÒÄãʹÓõÄÓÖ²»ÊÇС±í£¬ÄÇôʹÓõÍЧ¼Æ»®µÄ³É±¾¿ÉÄܱÈÖØбàÒëµÄ³É±¾Òª¸ßµÃ¶à¡£ÕâʱӦ¸Ã¿¼ÂÇʹÓÃÁÙʱ±í¡£
Ïà¹ØÎĵµ£º
Ò»¡¢ÄÚ²¿º¯Êý
1¡¢ÄÚ²¿ºÏ¼Æº¯Êý
1£©COUNT£¨*£© ·µ»ØÐÐÊý
2£©COUNT£¨DISTINCT COLNAME£©·µ»ØÖ¸¶¨ÁÐÖÐΨһֵµÄ¸öÊý
3£©SUM£¨COLNAME/EXPRESSION£©·µ»ØÖ¸¶¨Áлò±í´ïʽµÄÊýÖµºÍ£»
4£©SUM£¨DISTINCT COLNAME£© ·µ»ØÖ¸¶¨ÁÐÖÐΨһֵµÄºÍ
5£©AVG£¨COLNAME/EXPRESSION£©·µ»ØÖ¸¶¨Áлò±í´ïʽÖеÄÊýֵƽ¾ùÖµ
6£©AV ......
Êý¾Ý²ã´ÎµÄ¸ÅÄî:
Êý¾Ý²ã´ÎÊDZí´ïÊý¾ÝµÄÒ»ÖÖÖØÒª¹Øϵ£¬ÔÚÊý¾Ý¿âµÄÉè¼ÆÖУ¬È磺×éÖ¯½á¹¹·Ö½â¡¢¹¤×÷ÈÎÎñ·Ö½â¡¢ÐÐÕþÇø»®µÄ·Ö½âµÈ¶¼ÊDzã´Î¹ØϵÊý¾ÝµÄµäÐÍʵÀý¡£
±í´ï²ã´Î¹ØϵµÄÊý¾ÝÒ»°ãÐèҪʵÏÖÈçÏÂÊôÐÔ£º
1.²ã´ÎµÄ×î´ó¼¶Áª²ã´ÎÊý¡£È磺Öйú£>ºþÄÏÊ¡->³¤É³ÊÐ->Ó껨Çø£¬¾ÍÊÇ4²ã¡£
2.ÄÜ·´Ó³Í¬Ò»² ......
Ê×ÏÈÎÒ½¨ºÃÁËÒ»ÕÅÓû§±í±íÖÐÓÐÁ©¸ö×ֶΠһ¸öÊÇÕ˺ţ¬Ò»¸öÊÇÃÜÂ뵱ȻÕâÀïÎÒдµÄ֪ʶ¼òµ¥µÄµÇ¼ºÜ×¢²á£¬
±íÃ÷ users Óû§±í
×ֶΠaccountnum varchar(50) --±íʾÕ˺Å
password varchar(50) --±íʾÃÜÂë
µÇ¼´æ´¢¹ý³Ì
create proc use_l ......
Sample1:
/* Variable Declaration */
DECLARE @EmpID AS SMALLINT
DECLARE @SQLQuery AS NVARCHAR(500)
/* Build and Execute a Transact-SQL String with a single parameter value Using EXECUTE Command */
SET @EmpID = 1001
SET @SQLQuery = 'SELECT * from tblEmployees WHERE EmployeeID = ' + CAST(@EmpID A ......
select * from formtable_main_20
sp_help formtable_main_20
--drop view zcountQJ01
create view zcountQJ01
as
select appman ,year(startdata) as zyear,jb,cast(sum(num) as decimal(4,1) ) as num
from formtable_main_20
where year(getdate()) = year(startdata)
group by appman,jb,year(startdata) ......