SQL Server 2005 ÖеķÖÇø±íºÍË÷Òý [2]
·ÖÇøµÄ·¢Õ¹ÀúÊ·
·ÖÇøµÄ¸ÅÄî¶Ô SQL Server À´Ëµ²¢²»Ä°Éú¡£Êµ¼ÊÉÏ£¬´Ë²úÆ·µÄÿ¸ö°æ±¾Öж¼¿ÉÒÔʵÏÖ²»Í¬ÐÎʽµÄ·ÖÇø¡£µ«ÊÇ£¬ÓÉÓÚûÓÐΪÁ˰ïÖúÓû§´´½¨ºÍά»¤·ÖÇø¼Ü¹¹¶ø×¨ÃÅÉè¼ÆÒ»Ð©¹¦ÄÜ£¬Òò´Ë·ÖÇøÒ»Ö±ÊÇÒ»¸öºÜ·±ËöµÄ¹ý³Ì£¬Ã»Óеõ½³ä·ÖµÄÀûÓ᣶øÇÒ£¬Óû§ºÍ¿ª·¢ÈËÔ±¶Ô´Ë¼Ü¹¹´æÔÚÎó½â£¨ÓÉÓÚÆäÊý¾Ý¿âÉè¼Æ±È½Ï¸´ÔÓ£©£¬µÍ¹ÀÁËËüµÄÓŵ㡣µ«ÊÇ£¬ÓÉÓÚ¸ÅÄîÖйÌÓеÄÖØÒªÐÔÄܸÄÉÆ£¬SQL Server 7.0 ¿ªÊ¼Í¨¹ý·ÖÇøÊÓͼʵÏÖ¸÷ÖÖ·ÖÇø·½Ê½£¬ÒÔ´ËÀ´¸Ä½øÕâÖÖ¹¦ÄÜ¡£ÏÖÔÚ£¬SQL Server 2005 Ϊͨ¹ý·ÖÇø±í¶Ô´óÐÍÊý¾Ý¼¯½øÐзÖÇøÓÖÂõ³öÁË×î´óµÄÒ»²½¡£
¶Ô SQL Server 7.0 ֮ǰµÄ°æ±¾ÖеĶÔÏó½øÐзÖÇø
ÔÚ SQL Server 6.5 ¼°ÒÔǰµÄ°æ±¾ÖУ¬·ÖÇøÖ»ÄÜͨ¹ýÉè¼ÆÀ´Íê³É£¬»¹±ØÐëÄÚÖõ½ËùÓÐÊý¾Ý·ÃÎʱàÂëºÍ²éѯ·½·¨ÖС£Í¨¹ý´´½¨¶à¸ö±í£¬È»ºóͨ¹ý´æ´¢¹ý³Ì¡¢ÊÓͼ»ò¿Í»§¶ËÓ¦ÓóÌÐò¹ÜÀí¶ÔÕýÈ·±íµÄ·ÃÎÊ£¬Í¨³£¿ÉÒÔ¸ÄÉÆÄ³Ð©²Ù×÷µÄÐÔÄÜ£¬µ«´ú¼ÛÊÇÔö¼ÓÁËÉè¼ÆµÄ¸´ÔÓÐÔ¡£Ã¿¸öÓû§ºÍ¿ª·¢ÈËÔ±¶¼±ØÐëÖªµÀ£¨²¢ÕýÈ·ÒýÓã©ÕýÈ·µÄ±í¡£µ¥¶À´´½¨ºÍ¹ÜÀíÿ¸ö·ÖÇø£¬¶øÊ¹ÓÃÊÓͼÀ´¼ò»¯·ÃÎÊ£»µ«ÊÇÕâÖÖ½â¾ö·½°¸¶ÔÐÔÄܲ¢Ã»ÓÐÌ«´óµÄ¸ÄÉÆ¡£Ê¹ÓÃÁªºÏÊÓͼ¼ò»¯Óû§ºÍÓ¦ÓóÌÐò·ÃÎÊʱ£¬²éѯ´¦ÀíÆ÷±ØÐë·ÃÎÊÿ¸ö»ù´¡±í²ÅÄÜÈ·¶¨½á¹û¼¯ËùÐèµÄÊý¾Ý¡£Èç¹ûÖ»ÐèÒª»ù´¡±íµÄÓÐÏÞ×Ó¼¯£¬Ôòÿ¸öÓû§ºÍ¿ª·¢ÈËÔ±¶¼±ØÐëÁ˽â´ËÉè¼Æ£¬ÒÔ±ãÖ»ÒýÓÃÏàÓ¦µÄ±í¡£
SQL Server 7.0 ÖеķÖÇøÊÓͼ
ÔÚ SQL Server 7.0 ֮ǰµÄ°æ±¾ÖУ¬ÊÖ¶¯´´½¨·ÖÇøËùÃæÁÙµÄÌôÕ½Ö÷ÒªÓëÐÔÄÜÓйء£¾¡¹ÜÊÓͼ¿ÉÒÔ¼ò»¯Ó¦ÓóÌÐòÉè¼Æ¡¢Óû§·ÃÎʺͲéѯµÄ±àд£¬µ«È´ÎÞ·¨¸ÄÉÆÐÔÄÜ¡£¶øÔÚ SQL Server 7.0 °æ±¾ÖУ¬ÊÓͼ½áºÏÁËÔ¼Êø£¬ÔÊÐí²éѯÓÅ»¯³ÌÐò´Ó²éѯ¼Æ»®ÖÐɾ³ý²»Ïà¹ØµÄ±í£¨¼´·ÖÇøÏû³ý£©£¬´ó´ó½µµÍÁËÁªºÏÊÓͼ·ÃÎʶà¸ö±íʱµÄ×ܼƻ®³É±¾¡£
Çë²Î¼ûͼ 1 ÖÐµÄ YearlySales ÊÓͼ¡£Äú¿ÉÒÔ¶¨ÒåÊ®¶þ¸öµ¥¶ÀµÄ±í£¨Èç SalesJanuary2003¡¢SalesFebruary2003 µÈ£©£¬È»ºó¶¨Òåÿ¸ö¼¾¶ÈµÄÊÓͼÒÔ¼°È«ÄêµÄÊÓͼ YearlySales£¬¶ø²»Êǽ«ËùÓÐÏúÊÛÊý¾Ý·Åµ½Ò»¸ö´óÐͱíÖС£
ͼ 1£ºSQL Server 7.0/2000 ÖеķÖÇøÊÓͼ
ʹÓÃÒÔϲéѯ·ÃÎÊ YearlySales ÊÓͼµÄÓû§Ö»»á±»Òýµ¼ÖÁ SalesJanuary2003 ±í¡£
SELECT ys.*
from dbo.YearlySales AS ys
WHERE ys.SalesDate = '20030113'
Ö»ÒªÔ¼Êø¿ÉÐŲ¢ÇÒ·ÃÎÊÊÓͼµÄ²éѯʹÓà WHERE ×Ó¾ä¸ù¾Ý·ÖÇø¼ü£¨¶¨ÒåÔ¼ÊøµÄÁУ©ÏÞÖÆ²éѯ½á¹û£¬SQL Server ¾Í»áÖ»·ÃÎʱØÐèµÄ»ù´¡±í¡£ÊÜÐÅÈεÄÔ¼ÊøÊÇÖ¸ SQL Server Äܹ»È·±£ËùÓÐÊý¾Ý·ûºÏ¸ÃÔ¼ÊøËù¶¨ÒåµÄÊôÐÔµÄÔ¼Êø¡£´´½¨Ô¼ÊøÊ±£¬Ä¬ÈÏÐÐ
Ïà¹ØÎĵµ£º
ÓÐʱ£¬ ΪÁËÈÃÓ¦ÓóÌÐòÔËÐеøü¿ì£¬Ëù×öµÄÈ«²¿¹¤×÷¾ÍÊÇÔÚÕâÀï»òÄÇÀï×öһЩºÜСµ÷Õû¡£°¡£¬µ«¹Ø¼üÔÚÓÚÈ·¶¨ÈçºÎ½øÐе÷Õû£¡³ÙÔçÄú»áÓöµ½ÕâÖÖÇé¿ö£ºÓ¦ÓóÌÐòÖÐµÄ SQL ²éѯ²»Äܰ´ÕÕÄúÏëÒªµÄ·½Ê½½øÐÐÏìÓ¦¡£ËüҪô²»·µ»ØÊý¾Ý£¬ÒªÃ´ºÄ·ÑµÄʱ¼ä³¤µÃ³öÆæ¡£Èç¹ûËü½µµÍÁ˱¨¸æ»òÄúµÄÆóÒµÓ¦ÓóÌÐòµÄËÙ¶È£¬Óû§±ØÐëµÈ´ýµÄʱ¼ä¹ý³¤£¬ËûÃǾͻá ......
Create PROCEDURE [dbo].[PR_addRoles]
@RolesID INT,
@Roles varchar (100),
@ID INT OUT
AS
BEGIN TRY
BEGIN TRAN
INSERT FS_Roles (RolesID,Roles) VALUES (@RolesID,@Roles)
COMMIT TRAN
SET @ID=1
END TRY
BEGIN CATCH
ROLLBACK TRAN
SET @ID=0
END CATCH
......
н¨Ñ§Éú-¿Î³ÌÊý¾Ý¿âµÄÈý¸ö±í:
ѧÉú±í:Student(Sno,Sname,Ssex,Sage,Sdept) SnoΪÖ÷Âë;
¿Î³Ì±í:Course(Cno,Cname,Cpno,Credeit) CnoΪÖ÷Âë;
ѧÉúÑ¡ÐÞ±í:SC(Sno,Cno,Grade) Sno,Cno,ΪÖ÷Âë;
Student
ѧºÅ
SnoÐÕÃû
SnameÐÔ±ð
SsexÄêÁä
SageËùÔÚϵ
Sdept
95001ÀîÓÂÄÐ20CS
95002Áõ³¿Å®19IS
95003ÍõÃôÅ®18MA
95004 ......
½ñÌì×öSQL ÓÅ»¯£¬²éÕÒÖ´Ðмƻ®Ê±£¬Ö´Ðмƻ®£¬·¢ÏÖ´ËÖ´Ðмƻ®ÓëÒÔÍùµÄ¼Æ»®ÓÐËùÇø±ð£»ÕÒ¼»¥ÁªÍø£¬ÖÕÓÚÕÒһƪÓйØÑо¿±È½ÏÉîÈëµÄÎÄÕ£»
ÔÖ´Ðмƻ®Ê¹ÓõÄÊÇË÷ÒýɨÃ裬ͻȻһÏ»áʹÓÃË÷Òý¸²¸Ç¼¼Êõ£¬Ð§ÂÊ´óÔö£»
SELECT * µÄÕæÏࣺË÷Òý¸²¸Ç(index coverage)
SELECT *µÄЧÂʺÜÔã¸âÂ𣿵±È»£¬ËùÓÐÈ˶¼ÖªµÀÕâÒ»µã£¬µ«ÊÇÎªÊ²Ã´ÄØ£ ......