Mindmajix 提供 2022 年高级 SQL Server 面试问题,帮助您完成面试并获得作为 SQL Server 开发人员的梦想职业。
5年经验的最佳SQL Server面试问题和答案
1) 什么是阻塞以及如何解决它?
当来自应用程序的一个连接持有一个锁而另一个连接需要一个冲突的锁类型时,就会发生阻塞。这迫使第二个连接等待,在第一个上被阻塞。
2) 您将采取哪些步骤来提高性能不佳的查询的性能?
这是一个非常开放的问题,查询性能不佳可能有很多原因。但是您可以讨论的一些一般问题是:没有索引、表扫描、缺少或过时的统计信息、阻塞、没有 SET NOCOUNT ON 的存储过程、过程和触发器的过度重新编译、编写不佳的查询以及不必要的复杂连接,过多的规范化,游标和临时表的过度使用。
一些帮助您解决性能问题的工具/方法是:
- 设置 SHOWPLAN_ALL ON
- 设置 SHOWPLAN_TEXT ON
- 设置统计 IO 开启
- SQL Server 探查器
- Windows NT /2000 性能监视器
- 查询分析器中的图形执行计划。
3)您被分配了一项任务,即使用带有链接服务器的 T-SQL 将 500 万行从一台服务器移动到另一台服务器。您会考虑如何避免在目标服务器上填满事务日志?
我们更喜欢使用 SET ROWCOUNT 和 while 循环来批量提交数据。
4) 数据库服务器的最佳磁盘配置是什么?如果预算不受限制,您会使用什么 RAID 配置?
- 用于操作系统/应用程序的 RAID 1
- 页面文件的 RAID 1
- RAID 10 用于数据文件(或 RAID 5 用于少量写入)
- 用于事务日志的 RAID 1(或 10)
5) 什么是死锁,什么是活锁?你将如何解决死锁?
死锁是当两个进程(每个进程对一个数据块都有锁)试图获取另一个数据块的锁时的情况。每个进程都会无限期地等待另一个进程释放锁,除非其中一个用户进程被终止。SQL Server 检测到死锁并终止一个用户的进程。
活锁就是这样一种,由于一系列重叠的共享锁不断干扰,对独占锁的请求被反复拒绝。SQL Server 在四次拒绝后检测到这种情况并拒绝进一步的共享锁。当读取事务独占表或页面时也会发生活锁,从而迫使写入事务无限期等待。
6) 什么是阻塞以及如何排除故障?
当来自应用程序的一个连接持有一个锁而另一个连接需要一个冲突的锁类型时,就会发生阻塞。这迫使第二个连接等待,在第一个上被阻塞。
7) 什么是统计数据,在什么情况下会过时,如何更新?
统计数据决定了索引的选择性。如果索引列具有唯一值,则该索引的选择性更高,而不是具有非唯一值的索引。查询优化器使用这些索引来确定在执行查询时是否选择索引。
在某些情况下您应该更新统计信息:
- 如果索引中的键值发生显着变化
- 如果索引列中的大量数据已添加、更改或删除(即键值的分布已更改),或者已使用 TRUNCATE TABLE 语句截断表然后重新填充
- 数据库从以前的版本升级
在线查找SQL Server书籍以获取以下命令:
UPDATE STATISTICS, STATS_DATE, DBCC SHOW_STATISTICS, CREATE STATISTICS, DROP STATISTICS, sp_autostats, sp_createstats, sp_updatestats
复制
8) 您能否请您在执行计划中看到一些表明查询未优化的项目。
- 索引扫描或表扫描
- 哈希连接
- 粗箭头(表示大型工作台)
- 并行流(Parallelism)
- 书签查找(或键查找)
9) 你可以为数据库实现什么结构来加速表读取?
遵循数据库调优的规则,我们必须:
- 正确使用索引(不同类型的索引)
- 在不同的表空间、文件等中正确定位不同的数据库对象。
- 3 创建一个特殊的空间(tablespace)来定位一些具有特殊数据类型的数据(例如CLOB、LOB和……)
10) SQL Server 和 Postgre SQL 的区别
SQL Server 与 PostgreSQL | ||
特征 | 微软 SQL 服务器 | PostgreSQL |
操作系统 | Windows | Windows、IOS、Unix 和Linux |
许可 | 免费和商业 | 开源 |
安装和维护 | 需要专家建议 | 中等的 |
Windows 默认驱动程序 | 是的 | 不 |
可用的驱动程序 | ODBC、JDBC、ADO.NET | ODBC、JDBC、ADO.NET |
只读视图 | 是的 | 是的 |
开源 | 除了 CodePlex/.NET | 适度 |
修改列 | 可以修改不掉线 | 不能 |
删除表和视图 | 可以删除表和视图 | 不能删除表 |
原文标题:Top 10 SQL Server Interview Questions for 5 years Experienced
原文链接:https://mindmajix.com/sql-server-interview-questions-for-experienced