SQLServer面试题.docx
- 文档编号:9125875
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:8
- 大小:19.10KB
SQLServer面试题.docx
《SQLServer面试题.docx》由会员分享,可在线阅读,更多相关《SQLServer面试题.docx(8页珍藏版)》请在冰豆网上搜索。
SQLServer面试题
SQL Server 面试题
维护数据库的完整性、一致性、你喜欢用触发器还是
自写业务逻辑?
为什么?
答:
尽可能用约束(包括 CHECK、主键、唯一键、外键、
非空字段)实现,这种方式的效率最好;其次用触发器,
这种方式可以保证无论何种业务系统访问数据库都能维持
数据库的完整性、一致性;最后再考虑用自写业务逻辑实
现,但这种方式效率最低、编程最复杂,当为下下之策。
什么是事务?
什么是锁?
答:
事务是指一个工作单元,它包含了一组数据操作命令,
并且所有的命令作为一个整体一起向系统提交或撤消请求
操作,即这组命令要么都执行,要么都不执行。
锁是在多用户环境中对数据的访问的限制。
SqlServer 自动
锁定特定记录、字段或文件,防止用户访问,以维护数据
安全或防止并发数据操作问题,锁可以保证事务的完整性
和并发性。
什么是索引,有什么优点?
答:
索引象书的目录类似,索引使数据库程序无需扫描整
个表,就可以在其中找到所需要的数据,索引包含了一个
表中包含值的列表,其中包含了各个值的行所存储的位置,
索引可以是单个或一组列,索引提供的表中数据的逻辑位
置,合理划分索引能够大大提高数据库性能。
视图是什么?
游标是什么?
答:
视图是一种虚拟表,虚拟表具有和物理表相同的功能,
可以对虚拟表进行增该查操作,视图通常是一个或多个表
的行或列的子集,视图的结果更容易理解(修改视图对基
表不影响),获取数据更容易(相比多表查询更方便),限
制数据检索(比如需要隐藏某些行或列),维护更方便。
游标对查询出来的结果集作为一个单元来有效的处理,游
标可以定位在结果集的特定行、从结果集的当前位置检索
一行或多行、可以对结果集中当前位置进行修改。
什么是存储过程?
有什么优点?
答:
存储过程是一组予编译的 SQL 语句,它的优点有 1.允
许模块化程序设计,就是说只需要创建一次过程,以后在
程序中就可以调用该过程任意次。
2.允许更快执行,如果某
操作需要执行大量 SQL 语句或重复执行,存储过程比 SQL
语句执行的要快。
3.减少网络流量,例如一个需要数百行的
SQL 代码的操作有一条执行语句完成,不需要在网络中发
送数百行代码。
4.更好的安全机制,对于没有权限执行存储
过程的用户,也可授权他们执行存储过程。
什么是触发器?
答:
出发器是一种特殊类型的存储过程,出发器主要通过
事件触发而被执行的,触发器的优点:
1.强化约束,触发器
能够提供比 CHECK 约束。
2.跟踪变化,触发器可以跟踪数
据库内的操作,从而不允许未经允许许可的更新和变化。
3.
联级运算,比如某个表上的触发器中包含对另一个表的数
据操作,而该操作又导致该表上的触发器被触发。
介绍一下 sql server 的安全性?
1、两种登陆方式:
a)标准登陆方式(sqlserver 和 windows),采用
sqlserver 提供的用户名和密码登陆连接,可用
sp_denylogin ‘builtinadministrators’拒绝操作系统管理员登
陆连接(sp_grantlogin ‘builtinadministrators’反转),也称非
信任登陆机制;这种认证方式是两种方式中最安全的。
b)集成登陆方式(仅 windows),将 windows 的
用户和工作组映射为 sqlserver 的登陆方式,也称信任机制。
2、一个特殊帐户:
sa,为系统默认帐户,不能删除,拥
有最高的管理权限,可以执行 sqlserver 服务器范围内的所
有操作,所以一定要给 sa 加上密码,密码推荐不少于 6 位,
最后是字母、数字和特殊符号的组合。
3、两个特殊数据库用户:
a)dbo,数据库的拥有者,在安装 sqlserver 时,
被设置到 model 数据库中,不能被删除,所以 dbo 在每个
数据库中都存在。
dbo 是数据库的最高权力者,对应于创
建该数据库的登陆用户,即所有的数据库的 dbo 都对应于
sa 帐户;
b)guest,这个用户可以使任何已经登陆到
sqlserver 服务器的用户都可以访问数据库,即使它还没有
成为本数据库的用户。
所有的系统数据库除 model 以外都
有 guest 用户。
所有新建的数据库都没有这个用户,如果
油必要添加 guest 用户,请用 sp_grantdbaccess 来明确建立
这个用户。
4、还原数据库的时候之所以要删除本数据库的用户如
user,然后在安全性→登陆里重新建这个用户和指定相应的
访问权限,是因为这个用户在 master 里不存在。
当然你也
可以用 sp_addlogin ‘user’,'resu’来新建 user 用户,
sp_change_users_login ‘update_one’,'user’,'user’来指定在
master 中的对应。
5、具有 system administrators 服务器角色的成员拥有与
sa 一样的权限,具有 db_owner 数据库角色的用户具有对本
数据库的完全操作权限。
如果在创建 login 的时候,选择了
system administrators 角色,那么该用户创建的对象都属于
dbo 用户。
介绍一下 SQL Server 的全文索引?
全文索引可以对存储在 SQL Server 数据库中的文本数据执
行快速检索功能。
同 LIKE 谓词不同,全文索引只对字符模
式进行操作,对字和语句执行搜索功能。
全文索引对于查
询非结构化数据非常有效。
一般情况下,可以对
char、varchar 和 nvarchar 数据类型的列创建全文索引,同
时,还可以对二进制格式的列创建索引,如 image 和
varbinary 数据类型列。
对于这些二进制数据,无法使用
LIKE 谓词。
为了对表创建全文索引,表必须包含单个、唯一、非空列。
当执行全文检索的时候,SQL Server 搜索引擎返回匹配搜索
条件的行的键值。
一般情况,使用 sql server 中的全文索引,
经过大体 4 个步骤:
1、安装全文索引服务;
2、为数据表建立全文索引目录;
3、使全文索引与数据表内容同步;
4、使用全文索引进行查询。
SQL Server 里面什么样的视图才能创建索引?
在为视图创建索引前,视图本身必须满足以下条件:
1、视图以及视图中引用的所有表都必须在同一数据库中,
并具有同一个所有者。
2、索引视图无需包含要供优化器使用的查询中引用的所
有表。
3、必须先为视图创建唯一群集索引,然后才可以创建其
它索引。
4、创建基表、视图和索引以及修改基表和视图中的数据
时,必须正确设置某些 SET 选项(在本文档的后文中讨论)
。
另外,如果这些 SET 选项正确,查询优化器将不考虑索
引视图。
5、视图必须使用架构绑定创建,视图中引用的任何用户
定义的函数必须使用 SCHEMABINDING 选项创建。
另外,还要求有一定的磁盘空间来存放由索引视图定义的
数据。
介绍一下 SQL Server 里面的索引视图?
复杂报表的场景经常会在数据仓储应用程序中遇到,它在
查询过程中会对数据库服务器产生大量请求。
当这些查询
访问视图时,因为数据库将建立视图结果集所需的逻辑合
并到从基本表数据建立完整查询结果集所需的逻辑中,所
以性能将会下降。
这一操作的开销可能会比较大,尤其当
视图涉及到复杂的大量行处理–如大量数据聚合或多表联结
时。
因为结果集并不永久存放在数据库(标准视图)中,
以后对该视图的访问可能导致在每次执行查询时建立结果
集的代价。
SQL Server 允许为视图创建独特的聚集索引,从而让访问此
类视图的查询的性能得到极大地改善。
在创建了这样一个
索引后,视图将被执行,结果集将被存放在数据库中,存
放的方式与带有聚集索引的表的存放方式相同。
这就在数
据库中有效地实现了查询结果。
对于那些在 FROM 子句中
不直接指定视图名的查询,SQL Server 查询优化器将使用视
图索引。
现有查询将受益于从索引视图检索数据而无需重
新编写程序原码的高效率。
对于某些特定类型的视图,甚
至可以获得指数级的性能改善。
如果在视图上创建索引,那么视图中的数据会被立即存储
在数据库中,对索引视图进行修改,那么这些修改会立即
反映到基础表中。
同理,对基础表所进行的数据修改也会
反映到索引视图那里。
索引的惟一性大大提高了 SQL Server
查找那些被修改的数据行。
维护索引视图比维护基础表的索引更为复杂。
所以,如果
认为值得以因数据修改而增加系统负担为代价来提高数据
检索的速度,那么应该在视图上创建索引。
SQL Server 提供的 3 种恢复模型都是什么?
有什么区别?
SQL Server 提供了 3 种恢复模型,分别是:
1、简单恢复,允许将数据库恢复到最新的备份。
2、完全恢复,允许将数据库恢复到故障点状态。
3、大容量日志记录恢复,允许大容量日志记录操作。
这些模型中的每个都是针对不同的性能、磁盘和磁带空间
以及保护数据丢失的需要。
例如,当选择恢复模型时,必
须考虑下列业务要求之间的权衡:
1、大规模操作的性能(如创建索引或大容量装载)。
2、数据丢失表现(如已提交的事务丢失)。
3、事务日志空间损耗
4、备份和恢复过程的简化。
根据正在执行的操作,可以有多个适合的模型。
选择了恢
复模型后,设计所需的备份和恢复过程。
下表提供了三种
恢复模型的优点和含义的概述。
备份模型之间的比较恢复模型
优点
工作损失表现
能否恢复到即时点?
简单
允许高性能大容量复制操作。
收回日志空间以使空间要求最小。
必须重做自最新的数据库或差异备份后所发生的更改。
可以恢复到任何备份的结尾处。
随后必须重做更改。
完全
数据文件丢失或损坏不会导致工作损失。
可以恢复到任意即时点(例如,应用程序或用户错误之前)。
正常情况下没有。
如果日志损坏,则必须重做自最新的日志备份后所发生的
更改。
可以恢复到任何即时点。
大容量日志记录的
允许高性能大容量复制操作。
大容量操作使用最少的日志
空间。
如果日志损坏,或者自最新的日志备份后发生了大容量操
作,则必须重做自上次备份后所做的更改。
否则不丢失任
何工作。
可以恢复到任何备份的结尾处。
随后必须重做更改。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQLServer 试题
![提示](https://static.bdocx.com/images/bang_tan.gif)