查看数据库版本
SELECT @@VERSION ;
查看数据库里所有的表/视图
SELECT name from DRMS_Logging_rms_sunac_local_443.sys.tables ; select * from sys.tables ; select * from sys.views ;
查询所有数据库
SELECT * FROM Master..SysDatabases ORDER BY dbid ;
查询数据库对应的操作系统文件
SELECT * FROM dbname.dbo.sysfiles ;
查看数据库大小
EXEC sp_spaceused @updateusage = 'TRUE' ;
查看数据库当前时间
select GETDATE()
查看数据库当前运行的session及SQL
SELECT s.session_id, r.status, r.blocking_session_id 'Blk by', r.wait_type, wait_resource, r.wait_time / (1000.0) 'Wait Sec', r.cpu_time, r.logical_reads, r.reads, r.writes, r.total_elapsed_time / (1000.0) 'Elaps Sec', Substring(st.TEXT,(r.statement_start_offset / 2) + 1, ((CASE r.statement_end_offset WHEN -1 THEN Datalength(st.TEXT) ELSE r.statement_end_offset END - r.statement_start_offset) / 2) + 1) AS statement_text, Coalesce(Quotename(Db_name(st.dbid)) + N'.' + Quotename(Object_schema_name(st.objectid,st.dbid)) + N'.' + Quotename(Object_name(st.objectid,st.dbid)), '') AS command_text, r.command, s.login_name, s.host_name, s.program_name, s.last_request_end_time, s.login_time, r.open_transaction_count FROM sys.dm_exec_sessions AS s JOIN sys.dm_exec_requests AS r ON r.session_id = s.session_id CROSS APPLY sys.Dm_exec_sql_text(r.sql_handle) AS st --WHERE r.session_id != @@SPID ORDER BY r.cpu_time desc, r.status, r.blocking_session_id, s.session_id
耗时最长的SQL
SELECT st.text, qp.query_plan, qs.* FROM (SELECT TOP 50 * FROM sys.dm_exec_query_stats ORDER BY total_worker_time DESC) AS qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) AS qp WHERE qs.max_worker_time > 300 OR qs.max_elapsed_time > 300
查看所有用户
select ssp.name,ssp.type_desc,ssp.is_disabled,ssl.is_expiration_checked,ssl.is_policy_checked from sys.server_principals ssp left join sys.sql_logins ssl on ssp.principal_id = ssl.principal_id order by 2,3;
删除所有外键约束
select 'alter table ' + quotename(schema_name(schema_id)) + '.' + quotename(object_name(parent_object_id)) + ' drop constraint '+quotename(name) + ';' from sys.foreign_keys
最小模式启动SQLServer
--以最小模式启动SQLServer实例,修改内存限制 --考虑到有多个应用从不同的服务器连接本SQLServer实例,首先做一些外围处理(禁止应用程序连接本实例),避免它们干扰修复过程 --– 关闭本地服务器(连接该实例)的应用程序, --– 对于跨服务器访问的,在防火墙中关闭SQLServer端口 --1.开启一个cmd窗口 窗口1,-f最小模式启动实例 CMD> cd /D C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn\sqlservr.exe CMD> sqlservr.exe -f -sMSSQLSERVER --MSSQLSERVER 默认实例名,可修改为你实际实例名修改 --2.cmd窗口2 (窗口1运行后)立即运行下面命令进入 命令行模式 CMD> sqlcmd -E -sMSSQLSERVER -S localhost,11433 --修复,就本故障来说,修改内存最大值为不限制, EXEC sp_configure 'show advanced options', '1' RECONFIGURE WITH OVERRIDE; EXEC sp_configure 'max server memory', 2147483647 RECONFIGURE WITH OVERRIDE; EXEC sp_configure 'show advanced options', '0' RECONFIGURE WITH OVERRIDE; GO
查看备份及恢复进度
SELECT session_id as SPID, command, a.text AS Query, start_time, percent_complete, dateadd(second,estimated_completion_time/1000, getdate()) as estimated_completion_time FROM sys.dm_exec_requests r CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) a WHERE r.command in ('BACKUP DATABASE','RESTORE DATABASE')