SQLServer学习-20180813考试

#SQLServer考试之错题笔记
考试名称:SQL开发进阶考试
分数:89(计分制:百分制)
考试时间:2018-08-13 17:00—2018-08-13 17:33
部门:云平台中心


  1. 索引的顺序和数据表的物理顺序相同的索引是( )?(C)×0.0分

A. 聚集索引 B. 非聚集索引 C. 主键索引 D. 唯一索引

正确答案:A

  1. 下列选项都是系统提供的存储过程,其中可以进行视图定义信息的是( )?(C)×0.0分

A. sp_helptext B. sp_helpindex C. sp_bindrule D. sp_rename

正确答案:A
PS:这道题目我认为是题意不明确。a选项我查询的结果是查询作用的,视图定义的功能与之是两种动作啊。

  1. 可以查看一个表结构的存储过程 _________ ;(D)×0.0分

A. sp_help B. sp_helptext C. sp_helpindex D. sp_spaceused

正确答案:A

应用题1:
CM_ChargingBills 中字段ID设计成varchar(36)类型,下面的语句存在哪些问题?
exec sp_executesql N’SELECT * FROM [dbo].[CM_ChargingBills] AS [Extent1] WHERE [Extent1].[ID] = @p0’,N’@p0 nvarchar(4000)’,@p0=N’80482c3d-db58-449d-9277-a1d0a267b9e9’

答案:
1- 使用了SELECT * ,获取的较多的冗余数据
2- 查询参数使用的类型和查询字段不匹配,存在隐式转换,查询效率低。

应用题2:
select count(0) from a bigtable,这句sql在生产环境统计该表行数,“可能”会带来什么问题?
答案:
1、会走Scan,即扫描。
2、会加S锁。

应用题3:
where DATEDIFF(day, OrderCreateDate, getdate())<7对性能有什么影响?

答案:
最佳实践是尽量避免在Where条件中使用函数,即使此列在索引中,也不会走Index Seek,而是Index Scan,效率没有那么高,可以转换SQL的写法避免使用函数。

应用题4:
为什么建议EXECUTE sp_executesql N’SELECT Name FROM Employee WHERE ID = @level’,N’@level tinyint’,@level = 109,而不建议SELECT Name FROM Employee WHERE ID = 109?

答案:
用sp_executesql来执行动态SQL语句更高效,可以重用预编译的参数化的SQL语句,减少编译消耗。


createtime:2018-08-28

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值