Àí½âSQL ServerÖеÄË÷Òý£¨Ò»£©
¶ÔÓںܶàDBAºÍ³ÌÐòÔ±À´Ëµ£¬SQL ServerÖеÄË÷Òý²»ÊÇÒ»¸öİÉúµÄÊÂÎÎÒÃÇÉõÖÁÿÌì¶¼ÔÚʹÓÃËü£¬¶ÔÓÚÄÄЩÇé¿öÏÂÓ¦¸Ã´´½¨Ë÷Òý¶¼ÄÜÒ»Ò»µÄµÀ³ö£¬²»¹ýÓпÉÄÜÎÒÃDz¢Ã»ÓÐ×ÐϸȥÏëËüµÄ¾ßÌåÔÀí£¬±¾ÎĽ«¸ù¾ÝÎÒ¶ÔSQL ServerÖеÄË÷ÒýµÄÀí½â×öÒ»¸ö¼òµ¥µÄ×ܽáºÍ¸ÅÊö£¬Ï£Íû¶Ô´ó¼ÒÄÜÓÐËù°ïÖú£¨Ïêϸ¿É²Î¿¼¡¶SQL Server 2005 Implementation and Maintenance¡· £©¡£
Ò»£¬Ë÷ÒýµÄ×÷ÓÃ
ÔÚSQL ServerÊý¾Ý¿âÖУ¬µ±ÎÒÃÇÐèÒªÔÚ´óÅúÁ¿±ÈÈ缸ÒÚÌõÊý¾Ý¿âÖмìË÷»òÕßÐÞ¸ÄÊý¾ÝµÄʱºò£¬Ë÷ÒýÄܹ»°ïÎÒÃÇ¿ìËÙµÄÕÒµ½Ä¿±êÊý¾Ý¡£¾ÍÈçͬÎÒÃÇÒªÔÚ×ÖµäÖвéÕÒÒ»¸ö×ÖµÄÏêϸ½âÊÍ£¬Èç¹ûûÓÐË÷Òý£¬ÄÇôÎÒÃÇÖ»ÓÐÒ»Ò³Ò»Ò³µÄ²éÕÒ£¬ÕâÑùµÄËÙ¶ÈÊÇÌØ±ðµÄÂýµÄ£¬µ±ÓÐÁËË÷Òý£¬ÎÒÃÇ¿ÉÒÔ¿ìËÙµÄÌø×ªµ½°üº¬Õâ¸ö×ÖµÄÒ³£¬ÕâÑù¾Í´ó´óµÄ½ÚÊ¡ÁËʱ¼ä¡£
¶þ£¬SQL ServerÖд´½¨Ë÷ÒýµÄ½á¹¹B-Tree/Banlanced Tree(BÊ÷)
ÎÒÃÇ˼¿¼Ò»¸öÎÊÌ⣬¼´±ãÒ»±¾×ÖµäÓÐË÷ÒýÊDz»ÊÇÒ»¶¨¾ÍÄÜÌá¸ß²éÔÄËÙ¶ÈÄØ£¿¼ÙÈçÎÒÃǰ´ÕÕÒ»¸ö¸ö×ÖµÄÔÚË÷ÒýÖÐÕÒÏÂÈ¥£¬ÄÇô¼¸Ê®Íò¸ö×Ö×é³ÉµÄË÷ÒýÒ²»á»¨µôÎÒÃǺܳ¤µÄʱ¼ä£»¶øÏÖʵÉú»î¸æËßÎÒÃÇ£¬Ò»°ãÎÒÃǵÄË÷ÒýÒ²Êǰ´ÕÕÒ»¶¨¹æÂÉ×é³ÉµÄ£¬±ÈÈçлª×ÖµäÓа´ÕÕÉúĸÅÅÐòµÄË÷Òý£¬Ò²Óа´ÕձʻÅÅÐòµÄË÷Òý£¬ÕâÑùÎÒÃǾÍÄܸü¿ìËٵIJéÔÄ£¬¶ø²»±ØÒªÔÚË÷ÒýÖа¤¸ö×ÖÕÒÏÂÈ¥¡£ÕâÀï¾ÍҪ̸µ½B-TreeÁË£¬B-TreeÒ²ÓÐÀàËÆµÄÔÀí¡£
ÈçÏÂÊÇB-TreeµÄʾÒâͼ
ÈçÉÏͼB-TreeÖÐÖ»ÓÐÒ»¸ö¸ù½Úµã£¬Õâ¸ö¸ù½ÚµãÖ»°üº¬Ò»¸öÊý¾ÝÒ³(data page)£»°üº¬0¸ö»òÕß¶à¸öÖмä²ã£¬Í¬Ê±Ò»¸öÒ¶¼¶¡£
ÔÚÒ¶¼¶µÄÊý¾ÝÒ³Öд洢ÁË´´½¨Ë÷ÒýµÄÊý¾ÝµÄÏà¹ØÐÅÏ¢£¨ÅÅÐòµÄ£©£»¶øÃ¿¸öÒ¶¼¶Ò³Ëù°üº¬µÄË÷ÒýÐÐÔòÒª¸ù¾Ý´´½¨Ë÷ÒýµÄÁеÄÊý¾ÝÀàÐÍÀ´¾ö¶¨¡£
¶øÖмä²ãÊǽ«Ã¿¸öÒ¶¼¶Ò³ÉϵĵÚÒ»¸öÊäÈëË÷ÒýÖµ¶¼´æ´¢ÔÚÒ»¸öÊý¾ÝÒ³ÉÏ£¬²¢ÇÒ´æ´¢¶ÔÓ¦Ò¶¼¶Ò³µÄÖ¸Õë¡£¶ø¸ù½Úµã´æ´¢µÄ·½Ê½Óë´ËÀàËÆ£¬´æ´¢µÄÊÇÿ¸öÖмä²ãµÄµÚÒ»¸öÊäÈëÒÔ¼°¶ÔÓ¦µÄÖ¸Õë¡£
Èý¡¢Ë÷Òý²éÕÒÊý¾ÝµÄʵÀý
ÏÂÃæ²Î¿¼Õâ¸öʵÀý
Èç¹ûÎÒÃDzéÕÒ “Man”Õâ¸öµ¥´Ê£¬ÄÇôÊ×ÏÈ´Ó¸ù½Úµã²éÕÒ Õâ¸öʱºòÖµHºÍO¶¼»á±»²éÕÒ³öÀ´£¬ÓÉÓÚLÔÚO֮ǰ£¬ËùÒÔÕâ¸öʱºò»áÈ¥ Öмä²ã¼¶µÄHÒ³²éÕÒ Õâ¸öʱºòÖµL»á±»²éÕÒ³öÀ´£¬È»ºóÔÚÒ¶¼¶Ò³L²éÕÒµ½M¡£ÕâÑùÎÒÃǾͽö²éÕÒÁËÈý¸öÒ³£¬Èç¹ûÎÒÃǰ´ÕÕ˳Ðò²éÕÒ£¬ÔÚÉÏͼÖÐÔòÐèÒª²éÕÒ5¸öÒ³£¬ÔÚÊý¾ÝÁ¿ºÜ´óµÄÇé¿öÏÂÓÅÊÆ»á¸üÃ÷ÏÔ¡£
Èý¡¢¹ØÓÚË÷ÒýµÄ¼¶
ÎÒÃÇÖªµÀÔÚSQL ServerÖÐ Ò»¸öÊý¾ÝÒ³µÄ´óСÊÇ8192×Ö½Ú£¬Óû§×î¶àÖ»ÄÜ´æ´¢ 8060×Ö½ÚµÄÊý¾Ý¡£¼ÙÈçÎÒÃÇÔÚÒ»¸öchar(60)µÄÁÐÉÏ´´½¨Ë÷Òý£¬ÔÚÊý¾Ý±íÖÐÿһÐÐÔòÐèÒª60×ֽڵĴ洢£¬Í¬
Ïà¹ØÎĵµ£º
Êý¾Ý¿â ÓÐÁ½Õűí
±í1£º student
±í2£ºchinese
ÏÖÔÚÒª·Ö±ðÁгö ÿËùѧУ ÓïÎijɼ¨×î¸ßµÄ ѧÉúÐÅÏ¢
SQL £º
SELECT *
from student
LEFT JOIN chinese ON student.no = chinese.no
WHERE chinese.chengji
IN (
SELECT max( chinese.chengji )
from student
LEFT JOIN chinese ON student.no = chinese.no
GROU ......
×î½üÔÚÒ»¸öÏîÄ¿ÖÐÓöµ½ÐèÒªÔÚÊý¾Ý²ã¾ÍÆ´½Ó±íÖÐÒ»ÁÐÊý¾ÝµÄÎÊÌâ¡£
ÀýÈ磬test±íÖÐÓиö×Ö¶Ît,tÁÐÖеÄ4ÐÐÊý¾ÝΪ1,2,3,4 £¬ÒªÆ´½Ó³É1+2+3+4£¬×ÁÄ¥ÁËÒ»Õ󣬱¾À´ÏëÓÃÓα꣬µ«ÊÇЧÂÊ¡£¡£ºóÀ´ÕÒµ½Ò»¶ÎSQL£¬¿ÉÒԺܷ½±ãµØÆ´½Ó¡£
DECLARE @STR VARCHAR(8000) ----¶¨Òå²éѯ×Ö·û´®
SELECT @STR=ISNULL(@STR+'+','')+t from (SELECT DIST ......
½ÓÉÏÆª
ËÄ£¬¸ù¾ÝÌõ¼þÓÐÑ¡ÔñµÄUPDATE¡£
Àý£¬ÓÐÈçϸüÐÂÌõ¼þ
¹¤×Ê5000ÒÔÉϵÄÖ°Ô±£¬¹¤×ʼõÉÙ10%
¹¤×ÊÔÚ2000µ½4600Ö®¼äµÄÖ°Ô±£¬¹¤×ÊÔö¼Ó15%
ºÜÈÝÒ׿¼ÂǵÄÊÇÑ¡ÔñÖ´ÐÐÁ½´ÎUPDATEÓï¾ä£¬ÈçÏÂËùʾ
--Ìõ¼þ1
UPDATE Personnel
SET salary = salary * 0.9
WHERE salary >= 5000;
--Ìõ¼þ2
UPDATE Personnel
SET sala ......
±¸·Ý
BACKUP DATABASE mydb
TO DISK='c:\olddb.bak'
WITH INIT
--ΪÁ˲âÊÔ£¬°Ñ±¸·ÝºÃµÄÎļþ´ÓCÅÌÒÆ¶¯µ½D:\tempdb Îļþ¼Ð
--»¹Ô
--1.ÓôËÓï¾äµÃµ½±¸·ÝÎļþµÄÂß¼ÎļþÃû£º
RESTORE FILELISTONLY from DISK = N'd:\tempdb\olddb.bak' --±¸·ÝÎļþ´æ·Å·¾¶
--¿´LogicalName£¬Ò»°ã»áÓÐÁ½¸öÎļþ,È磺
--olddb &nbs ......
--±¸·ÝÊÂÎñÈÕÖ¾ (×ÔÉÏÒ»´Î±¸·ÝÒÔÀ´£¬ÖÁµ±Ç°µÄÒÑÍê³ÉµÄÊÂÎñµÄÈÕÖ¾)
backup log MyDBName to disk='F:\dbbak\GamePoint\MyDBName_log_2010052709.bak';
--½Ø¶ÏÈÕÖ¾(½Ø¶Ïµôµ±Ç°µÄÒÑÍê³ÉµÄÊÂÎñµÄÈÕÖ¾), SQL Server 2005, 2008ûÓÐÕâ¸öÑ¡Ïî.
backup log MyDBName with no_Log;
--ÊÕËõÈÕÖ¾(ÖÁ1M,µ ......