ʵ Ñé ±¨ ¸æ רҵ °à¼¶ ѧºÅ ÐÕÃû ¿Î³ÌÃû³Æ Êý¾Ý¿âÓ¦ÓÃÓ뿪·¢ ѧÄê2014 -2014ѧÆÚ1 /2 ¡Ì ¿Î³ÌÀà±ð רҵ±ØÐÞ ¡Ì ÏÞÑ¡ ÈÎÑ¡ ʵ¼ù ʵÑéʱ¼ä2014 Äê5ÔÂ29ÈÕ ÊµÑéÃû³Æ Ë÷ÒýºÍÊÓͼ ʵÑéÄ¿µÄºÍÒªÇó ÔÚ½¨Á¢µÄʵÑéÊý¾Ý¿âµÄ»ù´¡ÉÏ£¬ÕÆÎÕË÷Òý¡¢Í³¼ÆÐÅÏ¢ºÍÊÓͼµÈÊý¾Ý¶ÔÏóµÄ»ù±¾¸ÅÄîºÍ»ù±¾²Ù×÷²¢Íê³ÉË÷ÒýºÍÊÓͼµÄ´´½¨¡£ ʵÑéÈíÓ²¼þÒªÇó Èí¼þ£ºSQL Server 2005 Ó²¼þ£ºPC»ú ʵÑéÄÚÈÝ¡¢·½·¨ºÍ²½Öè £¨¼û¸½Ò³£© ʵÑé½á¹û £¨¼û¸½Ò³£© С½á ͨ¹ý±¾´ÎʵÑ飬ÎÒÕÆÎÕÁËË÷Òý¡¢Í³¼ÆÐÅÏ¢ºÍÊÓͼµÈÊý¾Ý¶ÔÏóµÄ»ù±¾¸ÅÄîºÍÊìϤÁ˸÷ÖÖ»ù±¾²Ù×÷¡£ ÆÀ¶¨³É¼¨£º ÅúÔĽÌʦ£º Äê Ô ÈÕ
7-1±à³ÌÔÚ teaching Êý¾Ý¿âÖÐµÄ student ±íµÄ sname ÁÐÉÏ´´½¨Î¨Ò»Ë÷ÒýIDX_sname¡£
USE teaching GO
CREATE UNIQUE INDEX IDX_sname ON student(sname)
7-2 ±à³ÌÔÚteachingÊý¾Ý¿âÖеÄstudent±íµÄstudentnoºÍclassnoÁÐÉÏ´´½¨×éºÏË÷ÒýIDX_sc¡£
USE teaching
IF EXISTS(SELECT name FROM sysindexes WHERE name='IDX_sc') DROP INDEX student.sc GO
CREATE INDEX IDX_sc ON student(studentno,classno)
7-3 ÖØÐÂ×éÖ¯ teaching Êý¾Ý¿âÖÐ student ±íÉ쵀 IDX_sc Ë÷Òý¡£
USE teaching
ALTER INDEX IDX_sc ON dbo.student REORGANIZE
7-4 ÖØÐÂÉú³É teaching Êý¾Ý¿âÖÐ student ±íÉ쵀 IDX_sname Ë÷Òý£¬ÉèÖÃÌî³äË÷Òý£¬½«Ìî³äÒò×ÓÉèÖÃΪ80%£¬ÉèÖý«ÖмäÅÅÐò½á¹û´æ´¢ÔÚtempdbÖС£
USE teaching
ALTER INDEX IDX_sname ON dbo.student
REBUILD WITH(PAD_INDEX = ON,FILLFACTOR = 80,SORT_IN_TEMPDB = ON)
7-5 ÖØÐÂÉú³É teaching Êý¾Ý¿âÖÐ student ±íÉ쵀 C_studentno Ë÷Òý£¬½«ÆäÐÞ¸ÄΪ¾Û¼¯Î¨Ò»Ë÷Òý£¬²¢Ö¸¶¨¸ÃË÷ÒýµÄÒ¶¼¶Ò³µÄÌî³ä¶ÈΪ70%¡£
USE teaching GO
CREATE UNIQUE CLUSTERED INDEX C_studentno ON dbo.student(studentno)
WITH(PAD_INDEX = ON,FILLFACTOR = 70,DROP_EXISTING = ON)
7-6 ɾ³ý teaching Êý¾Ý¿âÖÐ student ±íÉϵľۼ¯Ë÷Òý C_studentno ºÍ·Ç¾Û¼¯Ë÷ÒýUC_classno¡£
USE teaching GO
DROP INDEX student.C_studentno,student.UC_classno
7-8 ͨ¹ý DBCC SHOW STATISTICS ÃüÁîÏÔʾ student ±í IDX_sc Ë÷ÒýµÄͳ¼ÆÐÅÏ¢¡£
USE teaching GO
DBCC SHOW_STATISTICS (student, IDX_sc)
7-9 ±à³Ì¸üÐÂstudent±íIDX_scË÷ÒýµÄͳ¼ÆÐÅÏ¢
USE teaching
GO
UPDATE STATISTICS student IDX_sc
7-10 ±à³Ì¸üÐÂstudent±íÉÏËùÓÐË÷ÒýµÄ·Ö²¼Í³¼ÆÐÅÏ¢
USE teaching
GO
UPDATE STATISTICS student
7-11 ±à³ÌÔÚteachingÊý¾Ý¿âÖд´½¨Ò»¸öÃû³ÆÎªV_courseµÄÊÓͼ£¬°üº¬ËùÓÐÀà±ðΪ¡°±ØÐÞ¡±µÄ¿Î³ÌÐÅÏ¢¡£
use teaching
go
create view v_course as select * from course
where type ='±ØÐÞ'
7-12 ¸ø³öÒ»¸ö³ÌÐò£¬ÔÚteachingÊý¾Ý¿âÖд´½¨Ò»¸öÃû³ÆÎªv_finalµÄÊÓͼ£¬°üº¬Ñ§ÉúѧºÅ¡¢ÐÕÃû¡¢¿Î³ÌºÅ¡¢¿Î³ÌÃûºÍÆÚÄ©³É¼¨£¬°´Ñ§ºÅÉýÐòÅÅÐò£¬ÏàͬѧºÅµÄ¼Ç¼°´¿Î³ÌºÅÉýÐòÅÅÐò¡£
7-13 ¸ø³öÒ»¸ö³ÌÐò£¬ÔÚteachingÊý¾ÝÖд´½¨Ò»¸öÃû³ÆÎªv_maxµÄÊÓͼ£¬²éѯÿ¸ö°à×î¸ß·ÖµÄ¿Î³ÌÃûºÍ·ÖÊý£¬°´°à¼¶ºÅÉýÐòÅÅÐò¡£ use teaching
go
create view v_max
as
select top 10 classno,cname,max(final) as max from student s,score sc,course c
where sc.courseno=c.courseno and s.studentno=sc.studentno and final is not null group by classno,cname order by classno
Ïà¹ØÍÆ¼ö£º