SSMS 详细介绍:从零基础到日常运维,一篇就够
SSMS 详细介绍从零基础到日常运维一篇就够一、SSMS 是什么为什么要学它SSMS全称SQL Server Management Studio是微软官方提供的一款免费的图形化数据库管理工具。你可以把它理解成 SQL Server 数据库的“遥控器”或“操作面板”。虽然 SQL Server 本身可以通过黑底白字的命令行操作但对新手极不友好。SSMS 将大部分操作变成了可视化的按钮、菜单和脚本编辑器让你能轻松地连接本地或远程的 SQL Server 数据库创建、修改、删除数据库和表编写并运行 T-SQL 查询备份、还原数据监控数据库运行状态排查阻塞和慢查询管理数据库用户和权限无论是后端开发、数据分析还是运维人员只要接触微软的数据库SSMS 几乎是必会工具。二、SSMS 安装指南小白版2.1 下载安装包SSMS 不会随 SQL Server 自动安装需要单独下载。在浏览器搜索 “下载 SQL Server Management Studio” 或直接访问微软官方下载中心。页面通常会自动识别系统语言下载最新的SSMS-Setup-CHS.exe中文版。文件大小约 500~900 MB请预留空间。2.2 安装步骤右键点击下载好的安装包选择“以管理员身份运行”。安装向导会询问安装路径直接保持默认即可点击“安装”。等待进度条走完可能需要 5~15 分钟期间可能会要求重启计算机。重启后在开始菜单找到Microsoft SQL Server Management Studio或直接搜索 SSMS启动它。注意SSMS 只是一个客户端工具它本身不包含数据库。你需要额外有一个可连接的 SQL Server 实例可以是自己电脑上安装的 SQL Server Express也可以是公司的服务器。没有服务器SSMS 打开后连不上任何东西。三、SSMS 部署与连接你的第一次握手“部署”SSMS 的本质就是安装然后连接到数据库服务器。3.1 启动并连接服务器打开 SSMS会直接弹出“连接到服务器”对话框。如果没有可以点击“对象资源管理器”中的“连接”按钮。填写连接信息服务器类型保持“数据库引擎”服务器名称填服务器地址。如果是本机可以填localhost、.(英文句号) 或127.0.0.1本机实例名如.\SQLEXPRESS。如果是远程填 IP 地址或机器名如192.168.1.100,1433逗号后面是端口。身份验证两种常用方式Windows 身份验证使用你当前登录 Windows 的账号密码无需再输密码。适合本机开发。SQL Server 身份验证需填写数据库内部创建的用户名如sa和密码。远程连接最常用。点击“连接”。如果一切正常左侧的“对象资源管理器”就会出现服务器图标下面是“数据库”“安全性”等文件夹大功告成3.2 界面概览对象资源管理器左侧树状目录展示所有数据库、表、用户等通过右键菜单可执行大部分管理操作。查询编辑器中间主区域写 SQL 语句的地方。点击工具栏的“新建查询”即可打开。结果窗格执行查询后下方会显示数据表格或消息。已注册的服务器可以保存多个连接信息方便切换。四、常用运维命令详细解析小白必学下面这些命令是 DBA 日常工作中最常用的可以直接在查询编辑器中输入并执行选中要运行的语句点“执行”或按 F5。4.1 查看服务器和数据库基本信息-- 1. 查看 SQL Server 版本信息SELECTVERSION;输出会告诉你详细的版本号、系统平台等排查问题时先确认版本。-- 2. 列出当前服务器上所有数据库SELECTname,database_id,create_dateFROMsys.databases;-- 3. 查看当前连接的数据库名SELECTDB_NAME()AS当前数据库;4.2 数据库备份与还原完整备份-- 将数据库 TestDB 备份到指定磁盘文件BACKUPDATABASE[TestDB]TODISKND:\Backup\TestDB_Full.bakWITHFORMAT,NAMENTestDB-完整备份;FORMAT会覆盖现有备份集小心使用。务必确保目标路径文件夹存在且 SQL Server 有写入权限。还原数据库-- 从备份文件恢复 TestDB注意需要先关闭其他连接USE[master];GORESTOREDATABASE[TestDB]FROMDISKND:\Backup\TestDB_Full.bakWITHREPLACE,RECOVERY;REPLACE即使目标库已存在也覆盖危险操作确认后执行。RECOVERY还原后数据库立即可用如果想连续还原日志则用NORECOVERY。4.3 检查数据库空间与文件查看所有数据库大小EXECsp_databases;快速列出数据库名和大小单位KB。查看某个数据库的文件与已用空间USE[TestDB];GOEXECsp_spaceused;输出包含总大小、未用空间等。查具体数据文件和日志文件路径、已用尺寸SELECTnameAS逻辑名,physical_nameAS物理路径,size*8/1024AS当前大小(MB),max_size,growthFROMsys.database_files;size单位是数据页8 KB所以乘以 8 除以 1024 得到 MB。4.4 查看活动连接与阻塞当前所有连接信息SELECTsession_id,login_name,host_name,program_name,status,last_request_start_timeFROMsys.dm_exec_sessionsWHEREis_user_process1;查看正在执行的 SQL 语句SELECTr.session_id,s.textASSQL文本,r.status,r.start_time,r.total_elapsed_time/1000AS耗时秒FROMsys.dm_exec_requests rCROSSAPPLYsys.dm_exec_sql_text(r.sql_handle)sWHEREr.session_id50;-- 排除系统会话发现阻塞谁锁了谁SELECTblocked.session_idAS被阻塞会话,blocked.wait_time/1000AS等待秒,blocker.session_idAS阻塞源头会话,blocker_text.textAS阻塞源SQLFROMsys.dm_exec_requests blockedJOINsys.dm_exec_requests blockerONblocked.blocking_session_idblocker.session_idCROSSAPPLYsys.dm_exec_sql_text(blocker.sql_handle)blocker_textWHEREblocked.blocking_session_id0;一旦发现阻塞可以强制关闭阻塞源头用KILL 会话ID需谨慎。4.5 查看慢查询与执行计划找出最近高消耗查询CPU/时间SELECTTOP10total_worker_time/execution_count/1000AS平均CPU毫秒,total_elapsed_time/execution_count/1000AS平均用时秒,execution_countAS执行次数,SUBSTRING(st.text,(qs.statement_start_offset/2)1,((CASEqs.statement_end_offsetWHEN-1THENDATALENGTH(st.text)ELSEqs.statement_end_offsetEND-qs.statement_start_offset)/2)1)AS查询文本FROMsys.dm_exec_query_stats qsCROSSAPPLYsys.dm_exec_sql_text(qs.sql_handle)stORDERBYtotal_worker_timeDESC;用于分析哪些语句最耗费 CPU有助于优化。查看实际执行计划在查询窗口中写好 SQL先不要点“执行”而是点击工具栏的“包含实际的执行计划”按钮或 CtrlM再执行。结果会多一个“执行计划”标签页图形化显示数据库如何查找数据、是否使用了索引是调优利器。4.6 用户与权限管理创建登录名服务器级别CREATELOGIN 新用户WITHPASSWORD强密码123!,DEFAULT_DATABASE[TestDB];在指定数据库创建用户并映射该登录名USE[TestDB];CREATEUSER新用户FORLOGIN 新用户;授予数据库读写权限-- 授予读、写增删改查权限ALTERROLE db_datareaderADDMEMBER 新用户;ALTERROLE db_datawriterADDMEMBER 新用户;或者单独授予更细粒度的权限GRANT SELECT, INSERT, UPDATE, DELETE ON 表名 TO 新用户;4.7 索引维护查看表上的索引EXECsp_helpindex表名;重建索引消除碎片提升性能-- 对指定表的所有索引进行重组在线操作影响小ALTERINDEXALLON表名 REORGANIZE;-- 重建索引效果更彻底但可能锁表适合维护窗口ALTERINDEXALLON表名 REBUILD;查看索引碎片情况SELECTdbschemas.nameas架构,object_name(ips.object_id)as表名,i.nameas索引名,ips.avg_fragmentation_in_percentas碎片百分比FROMsys.dm_db_index_physical_stats(DB_ID(),NULL,NULL,NULL,LIMITED)ipsJOINsys.indexes iONips.object_idi.object_idANDips.index_idi.index_idJOINsys.objects oONi.object_ido.object_idJOINsys.schemas dbschemasONo.schema_iddbschemas.schema_idWHEREips.avg_fragmentation_in_percent30ORDERBY碎片百分比DESC;一般碎片超过 30% 重建5%~30% 重组。4.8 数据库日志管理查看日志文件大小及使用百分比DBCCSQLPERF(LOGSPACE);截断日志释放空间在简单恢复模式下日志会自动截断完整恢复模式下需定期备份日志来释放空间-- 先备份日志BACKUPLOG[TestDB]TODISKND:\Backup\TestDB_Log.trn;-- 然后收缩日志文件DBCCSHRINKFILE(TestDB_log,100);-- 目标收缩到100MBTestDB_log是你的日志文件逻辑名称可通过sys.database_files查出。4.9 其他救命命令DBCC 检查数据库完整性DBCCCHECKDB(TestDB);定期执行以发现数据库损坏。查看当前被锁定的资源EXECsp_lock;可快速发现锁定对象。杀掉有问题会话KILL52;-- 数字是 session_id需谨慎可能导致事务回滚。五、总结与学习建议本文从零开始介绍了 SSMS 的背景、安装、连接以及小白日常运维必备的 T-SQL 命令。掌握这些你已经能应付90%的日常数据库管理工作了。给初学者的几点建议一定要在测试环境练习备份、还原、KILL 等命令切勿在生产库直接实验。多用图形界面探索在对象资源管理器中右键操作很多会自动生成对应的 SQL 脚本顶部有“脚本”按钮是学习语法的最佳途径。善用 F1 帮助选中关键字按 F1会打开微软官方文档解释非常详细。遇到权限、连接等错误先确认服务是否运行services.msc查看 SQL Server 服务以及防火墙是否开放 1433 端口。希望这篇博客能帮你顺利开启 SQL Server 运维之旅。如果觉得有用欢迎收藏转发

相关新闻