2025年SQLserver期末考试题及答案_第1页
2025年SQLserver期末考试题及答案_第2页
2025年SQLserver期末考试题及答案_第3页
2025年SQLserver期末考试题及答案_第4页
2025年SQLserver期末考试题及答案_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2025年SQLserver期末考试题及答案一、单项选择题(每题2分,共20分)1.以下关于SQLServer数据库引擎的描述,错误的是()。A.关系引擎负责处理T-SQL语句和关系数据操作B.存储引擎负责管理数据页、索引和磁盘I/OC.全文引擎用于支持非结构化文本的快速搜索D.列存储引擎仅支持行存储表的批量导入2.某表包含字段“OrderDate(日期时间型)”和“Amount(数值型)”,需按月份统计总金额,最优的索引设计是()。A.在OrderDate字段创建非聚集索引B.在OrderDate字段创建聚集索引C.在CONVERT(VARCHAR(7),OrderDate,23)上创建计算列并建立索引D.在OrderDate和Amount字段创建包含性非聚集索引3.事务执行过程中,若发生电源故障导致服务器重启,恢复阶段会优先执行()。A.分析阶段:扫描事务日志确定未提交事务B.重做阶段:重新执行已提交但未写入磁盘的操作C.回滚阶段:撤销未提交事务的部分操作D.检查点阶段:强制将脏页写入磁盘4.关于差异备份的描述,正确的是()。A.差异备份仅记录自上一次完整备份以来的所有修改B.差异备份的恢复顺序是:最新完整备份→最新差异备份→事务日志备份C.差异备份的体积一定小于事务日志备份D.差异备份可单独用于数据库恢复5.执行以下语句后,变量@Result的值是()。DECLARE@ResultINT;SELECT@Result=COUNT()FROM(VALUES(1),(NULL),(3),(NULL))ASt(col);A.2B.3C.4D.NULL6.为提高查询“SELECTProductNameFROMProductsWHEREPriceBETWEEN100AND200”的性能,应优先考虑()。A.在Price字段创建非聚集索引B.将Products表移动到单独文件组C.创建覆盖索引(PriceINCLUDEProductName)D.使用列存储索引替换行存储索引7.以下关于内存优化表的限制,错误的是()。A.不支持外键约束(除NOACTION类型)B.必须使用SCHEMA_ONLY或SCHEMA_AND_DATA持久化模式C.不支持TEXT、NTEXT、IMAGE等大对象数据类型D.支持通过普通T-SQL语句进行增删改查8.执行“DBCCCHECKDB(MyDB,REPAIR_ALLOW_DATA_LOSS)”时,可能导致()。A.修复数据库一致性错误,但可能丢失部分数据B.仅检查数据库完整性,不执行修复C.修复所有错误且不会丢失数据D.提供数据库完整性检查报告但需手动修复9.某系统需记录用户操作日志,要求即使数据库崩溃也能完整恢复日志,应将日志文件存储在()。A.RAID0磁盘阵列B.RAID1磁盘阵列C.普通机械硬盘D.固态盘(SSD)10.以下关于动态管理视图(DMV)的描述,正确的是()。A.sys.dm_exec_query_stats用于查看当前活动会话信息B.sys.dm_db_index_physical_stats可查询索引碎片率C.sys.dm_os_wait_stats用于监控数据库备份进度D.sys.dm_exec_sessions仅显示当前登录的管理员会话二、填空题(每空2分,共10分)1.SQLServer数据库的主要数据文件扩展名是______,事务日志文件扩展名是______。2.索引视图的结果集存储在______中,其更新由______自动维护。3.事务的ACID特性中,“I”代表______。三、简答题(每题8分,共32分)1.简述创建分区表的主要步骤及适用场景。2.说明索引优化的基本原则(至少列出4条)。3.描述死锁的检测机制及常见解决方法。4.对比行存储索引与列存储索引的适用场景。四、操作题(共28分)【场景】某公司需构建“设备维护管理系统”,数据库结构如下:设备表(Equipment):设备ID(EID,主键,INT)、设备名称(EName,VARCHAR(50))、购买日期(PurchaseDate,DATE)、所属部门(DeptID,INT)。维护记录表(Maintenance):记录ID(MID,主键,INT)、设备ID(EID,外键)、维护日期(MDate,DATE)、维护类型(MType,VARCHAR(20),取值为“日常”“大修”“校准”)、维护费用(Cost,DECIMAL(10,2))。部门表(Department):部门ID(DeptID,主键,INT)、部门名称(DeptName,VARCHAR(30))。要求:根据以上场景,编写T-SQL语句完成以下操作(需考虑约束完整性)。1.创建数据库“EquipmentDB”,数据文件初始大小200MB,最大无限制,自动增长10%;日志文件初始大小50MB,最大2GB,自动增长5MB(4分)。2.创建上述三张表,其中维护类型(MType)需通过约束限制取值范围(6分)。3.向Department表插入数据:(1,'生产部'),(2,'研发部'),(3,'质检部')(2分)。4.查询2023年购买且2024年至少被维护过2次的设备名称、所属部门名称及总维护费用(需使用窗口函数统计维护次数)(6分)。5.为Equipment表的PurchaseDate字段创建非聚集索引,要求包含EName和DeptID列(4分)。6.编写事务:将设备ID为1001的设备从生产部(DeptID=1)调整到研发部(DeptID=2),若调整后该设备2024年维护费用超过5000元则回滚,否则提交(6分)。五、综合题(共10分)【背景】某电商平台订单数据库近期出现查询性能下降,DBA捕获到慢查询如下:```sqlSELECTu.UserName,COUNT(o.OrderID)ASOrderCount,SUM(o.Amount)ASTotalAmountFROMUsersuLEFTJOINOrdersoONu.UserID=o.UserIDWHEREo.OrderDateBETWEEN'2024-01-01'AND'2024-12-31'GROUPBYu.UserNameHAVINGCOUNT(o.OrderID)>5;```执行计划显示:Orders表进行了全表扫描,且聚合操作消耗大量CPU。要求:1.分析慢查询性能问题的可能原因(3分)。2.提出优化方案(需包含索引设计、查询改写建议)(5分)。3.制定该数据库的备份策略(需说明备份类型、频率及保留周期)(2分)。答案一、单项选择题1.D2.C3.B4.A5.A6.C7.B8.A9.B10.B二、填空题1..mdf.ldf2.数据库触发器(或自动机制)3.隔离性(Isolation)三、简答题1.步骤:①创建分区函数(定义分区边界);②创建分区方案(映射分区到文件组);③创建表/索引时指定分区方案。适用场景:大表(超过100GB)、按时间或区域范围查询频繁、需快速删除旧数据。2.原则:①优先在WHERE子句、JOIN条件、ORDERBY/GROUPBY字段创建索引;②避免在小基数列(如性别)创建索引;③覆盖索引减少键查找;④定期重建/重组高碎片索引;⑤避免过多索引影响写操作性能。3.检测机制:SQLServer通过死锁监视器定期(默认5秒)检查是否存在循环等待链,若存在则选择资源占用少的事务作为牺牲品(deadlockvictim)并回滚。解决方法:缩短事务执行时间、按固定顺序访问资源、使用NOLOCK提示(需权衡一致性)、调整隔离级别为READCOMMITTEDSNAPSHOT。4.行存储索引:适合点查、更新频繁的OLTP场景,按行存储数据,支持快速随机访问。列存储索引:适合批量查询、聚合分析的OLAP场景,按列存储数据,压缩率高,适合扫描和聚合操作(如COUNT、SUM)。四、操作题1.```sqlCREATEDATABASEEquipmentDBONPRIMARY(NAME=EquipmentDB_Data,FILENAME='C:\Data\EquipmentDB.mdf',SIZE=200MB,MAXSIZE=UNLIMITED,FILEGROWTH=10%)LOGON(NAME=EquipmentDB_Log,FILENAME='C:\Log\EquipmentDB.ldf',SIZE=50MB,MAXSIZE=2GB,FILEGROWTH=5MB);```2.```sqlCREATETABLEDepartment(DeptIDINTPRIMARYKEY,DeptNameVARCHAR(30)NOTNULL);CREATETABLEEquipment(EIDINTPRIMARYKEY,ENameVARCHAR(50)NOTNULL,PurchaseDateDATENOTNULL,DeptIDINTNOTNULL,FOREIGNKEY(DeptID)REFERENCESDepartment(DeptID));CREATETABLEMaintenance(MIDINTPRIMARYKEY,EIDINTNOTNULL,MDateDATENOTNULL,MTypeVARCHAR(20)NOTNULLCHECK(MTypeIN('日常','大修','校准')),CostDECIMAL(10,2)NOTNULL,FOREIGNKEY(EID)REFERENCESEquipment(EID));```3.```sqlINSERTINTODepartment(DeptID,DeptName)VALUES(1,'生产部'),(2,'研发部'),(3,'质检部');```4.```sqlWITHMaintenanceCountAS(SELECTEID,COUNT()OVER(PARTITIONBYEID)ASMaintenanceTimes,SUM(Cost)OVER(PARTITIONBYEID)ASTotalCostFROMMaintenanceWHEREMDateBETWEEN'2024-01-01'AND'2024-12-31')SELECTe.EName,d.DeptName,mc.TotalCostFROMEquipmenteJOINDepartmentdONe.DeptID=d.DeptIDJOINMaintenanceCountmcONe.EID=mc.EIDWHEREe.PurchaseDateBETWEEN'2023-01-01'AND'2023-12-31'ANDmc.MaintenanceTimes>=2;```5.```sqlCREATENONCLUSTEREDINDEXIX_Equipment_PurchaseDateONEquipment(PurchaseDate)INCLUDE(EName,DeptID);```6.```sqlBEGINTRANSACTION;DECLARE@TotalCostDECIMAL(10,2);-更新设备部门UPDATEEquipmentSETDeptID=2WHEREEID=1001;-获取2024年维护费用总和SELECT@TotalCost=SUM(Cost)FROMMaintenanceWHEREEID=1001ANDMDateBETWEEN'2024-01-01'AND'2024-12-31';IF@TotalCost>5000ROLLBACKTRANSACTION;ELSECOMMITTRANSACTION;```五、综合题1.原因:①Orders表缺少OrderDate索引,导致全表扫描;②LEFTJOIN后过滤条件(OrderDa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论