资源描述:
《数据库系统概论实验六查询优化》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验六查询优化考虑以下3种SQL操作,查看和分析SQL-SERVER查询分析器给出的查询计划,分析优化效果。查询优化可以考虑以下方法: 1)建立索引 2)重写SQL语句(即查询重写) 3)其他优化方法(调整参数,建立视图或临时表等)1、为本实验建立数据库,包括Student、Course、SC表和STU、COU、S_C表,它们的结构与书上的“学生课程数据库”类似。2、表Student中录入30条记录,Course中录入20条记录,SC中100条记录;表STU共10000条记录
2、,COU共100条记录,S_C共1000000条记录。其中,Student、Course、SC表已建好,STU、COU、S_C表中的数据可以通过存储过程INSERT_STU、INSERT_COU、INSERT_S_C,在建立的库中导入数据。3、设计的数据情况如下:表Student中>20岁的学生记录为0条,占总元组数的0%;表STU中>20岁的学生记录为150条,占总元组数的1.5%。分析查询计划,对查询进行优化。4、单表查询(1)查询Student表中20岁以上学生的信息(2)查询Student表中20岁以下学
3、生的信息(3)查询STU表中20岁以上学生的信息(4)查询STU表中20岁以下学生的信息5、多表查询(1)查询选修了2号课程的学生姓名(2)查询没有选修1号课程的学生姓名通过嵌套查询和连接查询的比较分析,对查询优化策略进行了解。CREATETABLECourse(CNOCHAR(7)PRIMARYKEY,CNAMEVARCHAR(50),CREDITINT)GOCREATETABLEStudent(SNOCHAR(8)PRIMARYKEY,SNAMECHAR(8),SSEXCHAR(2),SAGEINT,SDEP
4、TVARCHAR(50))GOCREATETABLESC(CNOCHAR(7),SNOCHAR(8),GRADEfloat,PRIMARYKEY(CNO,SNO),FOREIGNKEY(CNO)REFERENCESCourse(CNO)ONDELETECASCADEONUPDATECASCADE,FOREIGNKEY(SNO)REFERENCESStudent(SNO)ONDELETECASCADEONUPDATECASCADE)GOCREATETABLECOU(CNOCHAR(7)PRIMARYKEY,CNAM
5、EVARCHAR(50),CREDITINT)GOCREATETABLESTU(SNOCHAR(9)PRIMARYKEY,SNAMECHAR(8),SSEXCHAR(2),SAGEINT,SDEPTVARCHAR(50))GOCREATETABLES_C(CNOCHAR(7),SNOCHAR(9),GRADEfloat,PRIMARYKEY(CNO,SNO),FOREIGNKEY(CNO)REFERENCESCOU(CNO)ONDELETECASCADEONUPDATECASCADE,FOREIGNKEY(SNO
6、)REFERENCESSTU(SNO)ONDELETECASCADEONUPDATECASCADE)GOSELECT*FROMStudentWHERESAGE>20;CREATEINDEXSTUAGEONStudent(SAGE);DROPINDEXStudent.stuage;SELECT*FROMStudentWHERESAGE<21;SELECT*FROMSTUWHERESAGE>20;CREATEINDEXSTUAGEONSTU(SAGE);DROPINDEXSTU.stuage;SELECT*FROMS
7、TUWHERESAGE<21;SELECTSNAMEFROMStudentWHERESNOIN(SELECTSNOFROMSCWHERECNO=3401002);SELECTSNAME,Student.SNOFROMStudent,SCWHEREStudent.SNO=SC.SNOANDCNO=3401002;SELECTSNAMEFROMStudentWHERESNOIN(SELECTSNOFROMSCWHERECNO!=3401001);SELECTSNAME,Student.SNOFROMStudent,S
8、CWHEREStudent.SNO=SC.SNOANDCNO!=3401001;SELECTSNAMEFROMStudentWHERENOTEXISTS(SELECT*FROMSCWHERESNO=Student.SNOANDCNO=3401001);