请教一下大家获取获取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 时出现算术溢出错误。

请各位大侠帮忙解释解决一下,不胜感激!
...全文
155 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
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超过最大了。
昵称被占用了 2013-03-21
  • 打赏
  • 举报
回复
原因@@IO_BUSY*@@timeticks超出了int的范围
昵称被占用了 2013-03-21
  • 打赏
  • 举报
回复
select @@IO_BUSY,--SQL自上次启动以来的用于执行输入和输出操作的时间 @@timeticks, --每个时钟周期对应的微秒数 cast(@@IO_BUSY as bigint)*@@timeticks as 'I/O 操作毫秒数', getdate() as '当前时间'

22,302

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧