SQL 操作练习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL Server(三级)操作练习题
1数据库运行监控
1.1使用SQL语句实现DMV查询,查找当前挂起的I/O 请求,将结果保存在
“c:\gatDoc\SQL3J2.1.1\2.1.1.doc”文档中。(提示:查询数据库master中的系统
视图sys.dm_io_pending_io_requests和系统函数
sys.dm_io_virtual_file_stats)
1.2以SA身份登录数据库,在Master数据库上执行SQL语句:Select * from
sysobjects 。利用SQL Server Manangement Studio监控数据库服务器,观察每个
登录用户在数据库执行的命令,请在“c:\gatDoc\SQL3J2.1.1\2.1.1.doc”文档内写
出操作步骤,并在该文档内将下列操作界面截屏后保存:阅读进程信息,sa执行
的命令。(提示:启动活动监视器)
1.3打开SQL Server Profiler,建立跟踪,对数据库活动进行监视,同时打开性能监视
器,利用SQL Server: Memory对象监视数据库的一般活动,运行3分钟后,观察
重合时段内SQL Serve的活动和上述性能计数器的值,请在“2.1.1.doc”文档内
写出操作步骤,并在该文档内将下列三个操作界面截屏后依次保存:
1)在SQL Server Profiler中新建跟踪mytrace。
2)在性能监视器中新建SQL Server: Memory计数器。
3)在SQL Server Profiler中查看指定性能计数器的情况。
2数据库备份计划
2.1利用维护计划功能,设置每天1:00自动执行增量备份(差异备份)数据库model
到文件夹C:\Backup,并将操作步骤写在c:\gatDoc\SQL3J2.2.1\2.2.1.doc文档里面,
将下面两个操作界面截屏后依次保存在同一个文档里:
1)设置备份数据库任务的界面
2)维护计划设置完成的界面
2.2利用SQL Server Agent功能(作业功能),创建作业job1,设置每天4:00完成
以下步骤:先删除备份文件c:\gatDoc\SQL3J2.2.1\model.bak,然后对数据库model
进行完全备份,保存为c:\gatDoc\SQL3J2.2.1\model.bak,请在2.2.1.doc文档里写
出操作步骤,并将下面三个操作界面截屏后依次保存:
1)设置删除备份文件的界面
2)设置对数据库model进行完全备份的界面
3)设置作业计划属性的界面
3数据库编程
* 准备:假设目前有一个数据库demo,里面有两个表Supplier、Production,结构如下:
Supplier :
ID int, --供应商编号
Name varchar(25), --姓名
hireDate datetime, --供应日期
type varchar(10), --供应类型
sal numeric(8,2), --补助
MGR int, --所属类型编号
productionID int, --商品编码
Production :
ID int, --商品编码
Name varchar(25), --商品名
price float, --商品价格
number float, --商品种类
练习时请同学自行创建以上数据库和数据表(考试时系统中已经创建好了)。
将下面操作的SQL脚本保存到c:\gatDoc\SQL3J3.1.1\3.1.1.doc文档中。
3.1建立存储过程add_supplier,输入供应商编号、姓名、-供应日期、供应类型、补
助、所属类型编号,向表Supplier插入数据。
3.2建立函数valid_id,根据输入的供应商编号,检查该供应商供应的商品是否少于
10种,如果少于,则返回1,否则返回0。(标量函数)
3.3建立函数get_sal,根据输入的商品名,返回该商品的平均价格。(标量函数)
3.4建立函数get_tab,根据输入的所属类型编号返回该类型的所有供应商信息。(内
联表值)
3.5编写存储过程disp_ supplier,根据输入的所属类型编号,采用游标方式按照下列
格式输出该所有该类型的供应商姓名、供应类型、供应日期。
供应商姓名供应类型供应日期
-------------------------------------------
------------------------(此处为数据)
参考答案:
1.1
select database_id,file_id,io_stall,io_pending_ms_ticks,
scheduler_address
from sys.dm_io_virtual_file_stats(null,null) t1,
sys.dm_io_pending_io_requests t2
where t1.file_handle=t2.io_handle
* 分析:在sys.dm_io_pending_io_requests视图中,记录了挂起的I/O进程情况。这个视图在master数据库中的系统视图中可以找到。另外还用到一个系统函数sys.dm_io_virtual_file_stats(),在下面图中的位置可以找到。