网页制作与网站建设从入门到精通 下载,消防网站建设的风格,衡水市住房和城乡建设局网站,我的个人网站怎么做MS SQL是Microsoft SQL Server的简称#xff0c;是由微软公司开发的一款关系型数据库管理系统#xff08;RDBMS,Relational DataBase Management System#xff09;。它支持在Windows和Linux上运行#xff0c;广泛应用于企业级数据库市场#xff0c;适用于大型企业网站和应…MS SQL是Microsoft SQL Server的简称是由微软公司开发的一款关系型数据库管理系统RDBMS,Relational DataBase Management System。它支持在Windows和Linux上运行广泛应用于企业级数据库市场适用于大型企业网站和应用程序。MSSQL使用**Transact-SQL (T-SQL)**进行数据操作提供了强大的数据管理和查询功能。
MS SQL Server 面试高频“数据库管理”知识清单 按“概念 → 关键语法/命令 → 一句话场景示例”整理背熟即可应对 90 % 提问 一、体系结构 核心概念
概念一句话解释面试追问点实例Instance一套 sqlservr.exe 独占内存/端口默认实例 MSSQLSERVER vs 命名实例系统数据库master/model/msdb/tempdb/resourcemaster 坏了怎么办重建步骤页 Page8 KB/ 区 Extent8 页I/O 最小单位计算表占多少页 row*rows/8060事务日志 LDFWAL 机制先写日志再写数据日志截断 / 收缩 / 备份模式恢复模式FULL / BULK_LOGGED / SIMPLE不同模式对日志截断的影响二、DDL库、表、索引、约束
类别高频命令一句话示例创建/删除库CREATE DATABASE / DROP DATABASECREATE DATABASE Sales ON (NAMESales_dat, FILENAMED:\Data\Sales.mdf)文件组 FILEGROUP把大表分区到不同磁盘ALTER DATABASE Sales ADD FILEGROUP FG2018建表CREATE TABLE … PK / FK / CHECK / UNIQUECREATE TABLE Orders(id INT PRIMARY KEY, customer_id INT REFERENCES Customers(id))修改表ALTER TABLE … ADD / ALTER COLUMN / DROP COLUMNALTER TABLE Orders ADD order_date DATETIME NOT NULL CONSTRAINT df_order_date DEFAULT GETDATE()索引CREATE [CLUSTERED / NONCLUSTERED] INDEXCREATE NONCLUSTERED INDEX IX_OrderDate ON Orders(order_date)覆盖索引INCLUDE 列减少回表CREATE INDEX IX_Cover ON Orders(order_date) INCLUDE(customer_id, amount)视图CREATE VIEW vSales AS … WITH SCHEMABINDING防止基础对象被删除分区表CREATE PARTITION FUNCTION / SCHEME按日期分区 快速切换归档三、DML增删改查 事务
命令必背细节面试示例INSERTIDENTITY_INSERT ON 可显式插入自增列SET IDENTITY_INSERT Orders ON; INSERT Orders(id) VALUES(1001);UPDATE加 OUTPUT 子句查看旧值UPDATE Orders SET statusS OUTPUT deleted.status AS old_statusDELETE vs TRUNCATE日志量、触发器、重置自增列TRUNCATE 不激活触发器、不能带 WHEREMERGE一条语句完成 UPSERTMERGE Target USING Source ON … WHEN MATCHED THEN UPDATE … WHEN NOT MATCHED THEN INSERT …事务 ACIDBEGIN TRAN / COMMIT / ROLLBACK / SAVEPOINT死锁优先级SET DEADLOCK_PRIORITY LOW四、查询与性能
主题关键词一句话示例连接INNER / LEFT / RIGHT / FULL / CROSS APPLY用 APPLY 代替游标逐行计算子查询 vs JOINEXISTS IN 性能SELECT * FROM A WHERE EXISTS(SELECT 1 FROM B WHERE B.idA.id)窗口函数ROW_NUMBER / RANK / DENSE_RANK / LAG / LEADSELECT ROW_NUMBER() OVER(PARTITION BY dept ORDER BY salary DESC) AS rnCTE 递归WITH … UNION ALL 自引用查 BOM 或组织架构树执行计划SET STATISTICS IO / TIME ON显示实际执行计划关注 Table Scan → Seek、RID Lookup → Key Lookup参数嗅探OPTION (RECOMPILE)、OPTIMIZE FOR、局部变量转常量解决同一查询不同参数速度差异大统计信息UPDATE STATISTICS WITH FULLSCAN过期的统计信息会导致走错执行计划索引碎片sys.dm_db_index_physical_stats 30 % 重建ALTER INDEX ALL ON Orders REBUILD五、备份 / 恢复 / 高可用
任务命令 / 方案面试话术完整备份BACKUP DATABASE Sales TO DISK‘D:\Bak\Sales.bak’ WITH COMPRESSION压缩备份节省 60 % 空间差异备份BACKUP DATABASE Sales TO DISK‘…’ WITH DIFFERENTIAL每天 1 次完整 每 15 min 差异日志备份BACKUP LOG Sales TO DISK‘…’保证 FULL 模式下点-in-time 恢复还原RESTORE DATABASE Sales FROM DISK‘…’ WITH NORECOVERY → RESTORE LOG …恢复到指定时间点STOPAT 2024-08-28 15:30:00CHECKDBDBCC CHECKDB(‘Sales’) WITH NO_INFOMSGS每周至少一次发现页损坏镜像 / AlwaysOn同步/异步模式、自动故障转移见证服务器作用、仲裁问题日志传送主→辅间隔分钟级仅可读成本低无自动故障转移六、安全与权限
对象命令示例登录 Login vs 用户 User登录实例级用户数据库级CREATE LOGIN tom WITH PASSWORDPss → CREATE USER tom FOR LOGIN tom角色server role / db role / 自定义ALTER ROLE db_datareader ADD MEMBER tom权限GRANT / DENY / REVOKEGRANT SELECT, INSERT ON Orders TO tom行级安全CREATE SECURITY POLICY … WITH (PREDICATE)让销售只看自己区域订单动态脱敏ADD MASKED WITH (FUNCTION partial(1,XXX,0))面试问 GDPR 合规方案七、监控 维护
DMV / 命令作用面试场景sys.dm_exec_requests / sys.dm_exec_sessions查看阻塞链SELECT blocking_session_id, wait_type, wait_timesys.dm_os_wait_stats服务器级别瓶颈常见 CXPACKET、PAGEIOLATCH_XXsys.dm_db_missing_index_details推荐索引结合执行计划验证Ola Hallengren 维护脚本免费开源备份/索引/统计信息回答“如何做自动化维护”SQL Server Agent Job定时任务每天 2:00 全备每 15 min 日志备八、常见面试题速答
日志文件暴涨怎么排查 查 log_reuse_wait_desc → 如果是 LOG_BACKUP 先做日志备份再收缩。索引重建还是重组 碎片 5–30 % 重组 REORGANIZE30 % 或深度 3 层则重建 REBUILD。如何迁移 1 TB 库到新服务器最快 备份压缩 → 复制 bak → 还原或 backup to url azcopy大库可先用日志传送。出现死锁怎么办 开启 trace 1222 捕获死锁图 → 优化索引/调整事务顺序必要时 WITH (ROWLOCK, UPDLOCK) 提示。tempdb 配置最佳实践 数据文件 CPU 核数 ≤ 8统一大小开启 TF 1117/1118放到最快的 SSD。 把上述清单按“概念→命令→场景”熟记可在 MS SQL Server DBA / 开发面试中快速输出关键词体现专业深度。