请教一下大家获取获取SQL Server数据库文件的I/O统计信息失败!!

xfok 河南华东信息科技有限公司 软件运维经理  2013-03-21 08:44:00
在SQL Server数据库巡检时,执行如下入语句获取数据库文件的I/O统计信息时:
select
@@IO_BUSY,--SQL自上次启动以来的用于执行输入和输出操作的时间
@@timeticks, --每个时钟周期对应的微秒数
@@IO_BUSY*@@timeticks as 'I/O 操作毫秒数',
getdate() as '当前时间'

提示:消息 8115,级别 16,状态 2,第 1 行
将 expression 转换为数据类型 int 时出现算术溢出错误。

请各位大侠帮忙解释解决一下,不胜感激!
...全文
117 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
xfok 2013-03-21
非常感谢二位!
回复
Mr_Nice 2013-03-21
select 
  @@IO_BUSY,--SQL自上次启动以来的用于执行输入和输出操作的时间
  @@timeticks, --每个时钟周期对应的微秒数
  CONVERT(bigint,@@IO_BUSY)*CONVERT(bigint,@@timeticks) as 'I/O 操作毫秒数',
  getdate() as '当前时间'
  
/*
(无列名) (无列名)	I/O 操作毫秒数	当前时间
257002	31250	8031312500	2013-03-21 08:52:30.123
*/
int 2147483647 最大,8031312500超过最大了。
回复
原因@@IO_BUSY*@@timeticks超出了int的范围
回复
select @@IO_BUSY,--SQL自上次启动以来的用于执行输入和输出操作的时间 @@timeticks, --每个时钟周期对应的微秒数 cast(@@IO_BUSY as bigint)*@@timeticks as 'I/O 操作毫秒数', getdate() as '当前时间'
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2013-03-21 08:44
社区公告
暂无公告