设为首页 加入收藏

TOP

部分具有统计功能的TSQL语句(例如DBCC语句,全局函数,系统存储过程)(一)
2014-11-24 02:57:21 来源: 作者: 【 】 浏览:10
Tags:部分 具有 统计 功能 TSQL 语句 例如 DBCC 全局 函数 系统 存储 过程
部分具有统计功能的TSQL语句(例如DBCC语句,全局函数,系统存储过程)
部分具有统计功能的TSQL语句(例如DBCC语句,全局函数,系统存储过程)
这些功能也能帮助用户了解和监控SQLSERVER的运行情况
DBCC语句,DBCC语句是SQL2005的 数据库控制台命令
DBCC语句不仅能检查数据库的性能和活动,还能检查数据库的物理和逻辑一致性
许多DBCC语句能够对检测到的问题进行修复,例如
1 1、DBCC CHECKTABLE
2 --检查组成表或索引视图的所有页和结构的完整性
3 --例如,检查AdventureWorks数据库中的HumanResources.Employee表的数据页完整性
4 --请执行
5 USE [AdventureWorks]
6 GO
7 DBCC CHECKTABLE('HumanResources.Employee')
8 --如果发现有错误可以运行下面这句尝试修复
9 DBCC CHECKTABLE('HumanResources.Employee',REPAIR_ALLOW_DATA_LOSS) 

当使用DBCC 语句验证表、数据库文件甚至整个数据库的完整性时,如果报告了任何错误,可以重新执行DBCC命令,并且使用REPAIR_ALLOW_DATA_LOSS 参数尝试修复
报告的所有错误,但是这些修复可能会导致某些数据丢失
安装SQL Server 2000的服务器有次突然宕机了,重启后select *查询某张表时出现报错信息“服务器:消息 823,级别 24,状态2,行1”,
请问该如何解决?现在web应用页面查询报错,无法显示数据。报错服务器:消息 823,级别 24,状态2,行1,连接中断
1 --823错误属于硬件错误,这个时候就可以使用下面sql语句修复那一张表
2 DBCC CHECKTABLE('HumanResources.Employee',REPAIR_ALLOW_DATA_LOSS

2、DBCC CHECKALLOC
DBCC CHECKALLOC将检查数据库中所有页的分配,而不管其所属的页类型或对象类型。他还可以验证各种内部结构,
这些结构可用于跟踪这些页和他们之间的关系
DBCC CHECKALLOC报告了任何错误,建议通过数据库备份来还原数据库,而不是运行修复。如果备份不存在,则运行修复也可纠正报告的错误;
但是,纠正这些错误时可能需要删除某些页,进而删除数据
1 DBCC CHECKALLOC('AdventureWorks')
2 GO

3、DBCC CHECKDB
检查指定数据库中所有对象的分配、结构和逻辑完整性。下面示例将对当前数据库执行DBCC CHECKDB
1 DBCC CHECKDB('AdventureWorks')

如果发现有错误,可以尝试使用下面sql语句来修复错误

 1 ---------------------------------------------------------
 2 --设置单用户模式
 3 ALTER DATABASE [GPOSDB] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
 4 GO
 5 --先使用下面这句
 6 DBCC checkdb([GPOSDB],REPAIR_REBUILD)
 7 --如果上面那句修复不了错误,再使用下面这句
 8 DBCC checkdb([GPOSDB],REPAIR_ALLOW_DATA_LOSS)
 9 --设置多用户模式
10 ALTER DATABASE [GPOSDB] SET MULTI_USER 
11 GO
12 -------------------------------------------------------------

运行DBCC CHECKDB命令,相当于依次运行下面DBCC检查语句
(1)对数据库运行DBCC CHECKALLOC
(2)对数据库中的每个表和视图运行DBCC CHECKTABLE
(3)验证数据库中的Service Broker数据
(4)对数据库运行DBCC CHECKCATALOG
(5)验证数据库中每个索引视图的内容
这意味着无须再运行DBCC CHECKTABLE、DBCC CHECKALLOC、DBCC CHECKCATALOG
如果DBCC CHECKDB报告了任何错误,建议从数据看备份还原数据库,而不运行具有repair选项的修复语句。
如果不存在备份,则运行修复将更正报告的错误。 但是,使用REPAIR_ALLOW_DATA_LOSS修复错误可能会导致某些数据丢失
4、DBCC OPENTRAN
显示指定数据库内最早的活动事务和最旧的分布,以及非分布式复制事务相关的信息 ,该语句可以用来查找长时间活动的事务
5、DBCC SQLPERF()
显示自上次SQLSERVER服务器以来的相关统计信息。
1 DBCC SQLPERF(LOGSPACE)   --显示所有数据库事务日志的使用情况
2 DBCC SQLPERF(IOSTATS)    --显示磁盘I/O情况
3 DBCC SQLPERF(NETSTATS)   --显示网络的活动情况

全局函数
SQLSERVER提供了多个全局变量来记录 系统的状态,全局变量为函数形式,作为全局函数引用
例如:
 1 SELECT @@MAX_CONNECTIONS  --返回SQLSERVER实例允许同时进行的最大用户连接数
 2 
 3 SELECT @@CONNECTIONS  --显示自上次启动SQLSERVER以来登录或试图登录的次数
 4 
 5 SELECT @@ERROR  --显示TSQL语句的错误代码
 6 
 7 SELECT @@SPID   --显示当前用户的服务器进程标识符id
 8 
 9 SELECT @@PROCID   --显示当前过程的存储过程标识符id
10 
11 SELECT @@ROWCOUNT  --显示受上一语句影响的行数
12 
13 SELECT @@SERVERNAME  --返回本地SQLSERVER实例名称
14 
15 SELECT @@VERSION  --显示SQLSERVER安装日期、版本、处理器类型、Windows操作系统版本号

系统存储过程
下列SQLSERVER系统存储过程可以作为多监视任务的一种功能强大的备选方法。
1 EXEC [sys].[sp_monitor]

显示SQLSERVER统计信息,如总的处理事件、读写次数、登录或试图登录SQLSERVER次数
1 EXEC [sys].[sp_who] @loginame = NULL -- sysname
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇整体顺序部分倒序 下一篇数据库集群原理

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Announcing October (2025-12-24 15:18:16)
·MySQL有什么推荐的学 (2025-12-24 15:18:13)
·到底应该用MySQL还是 (2025-12-24 15:18:11)
·进入Linux世界大门的 (2025-12-24 14:51:47)
·Download Linux | Li (2025-12-24 14:51:44)