spid1:SQL Server has encountered 1 occurrence(s) of IO requests taking longer than 15 seconds to complete on file [E:\bydall\bydall_Data.MDF] in database [bydall] (7).  The OS file handle is 0x000004D8.  The offset of the latest long IO is: 0x000003b1c32000
spid81:SQL Server has encountered 136 occurrence(s) of IO requests taking longer than 15 seconds to complete on file [E:\bydall\bydall_Data.MDF] in database [bydall] (7).  The OS file handle is 0x000004D8.  The offset of the latest long IO is: 0x000003b1e2a000
spid102:SQL Server has encountered 187 occurrence(s) of IO requests taking longer than 15 seconds to complete on file [E:\bydall\bydall_Data.MDF] in database [bydall] (7).  The OS file handle is 0x000004D8.  The offset of the latest long IO is: 0x000003ad0da000像这样的错误,每天查看SQL SERVER 日志显示一大堆,什么意思,暂时没有影响数据库使用,如何解决?

解决方案 »

  1.   

    有没有看是发生在什么时候,有没有规律?
    再用log_explorer查看一下这时候数据库发生了什么。
      

  2.   

    看下这个:
    http://www.microsoft.com/taiwan/msdn/sql/library/zh-tw/dnsqldev/html/sqldev_04222005.mspx
      

  3.   

    你的多半是磁盘出现坏道了 如果是RAID1之类的话 可以再线重做 
    否则的话备份出来 换磁盘
      

  4.   


    应该不是磁盘的问题,全新的服务器IBM和DELL都出现过这种错误日志。
      

  5.   

    使用Log Explorer查看和恢复数据 Log Explorer 4.1.可用于SQL Server2005的日志查看工具下载地址:
    http://download.csdn.net/source/620271使用方法:打开Log Explorer -> Attach Log File -> 选择SQL Server服务器和登陆方式 -> Connect -> 
    在Database Name中选择数据库 -> Attach-> 左面对话框中Browse-> View Log-> 就可以看到log记录了 想恢复的话: 右键Log记录 Undo Transation-> 选择保存文件名和路径-> 然后打开该文件到查询分析器里执行 
    T-sql代码就可以了 例如 如果Log是delete table where ...的话,生成的文件代码就是insert table .... 
         然后将此insert table的代码放到查询分析器里执行.就可以恢复数据.
    Log Explorer使用的问题 1)对数据库做了完全 差异 和日志备份 
    备份时选用了删除事务日志中不活动的条目 
    再用Log Explorer打试图看日志时 
    提示No log recorders found that match the filter,would you like to view unfiltered data 
    选择yes 就看不到刚才的记录了 
    如果不选用了删除事务日志中不活动的条目 
    再用Log Explorer打试图看日志时,就能看到原来的日志 2)修改了其中一个表中的部分数据,此时用Log Explorer看日志,可以作日志恢复 3)然后恢复备份,(注意:恢复是断开Log Explorer与数据库的连接,或连接到其他数据上, 
    否则会出现数据库正在使用无法恢复) 
    恢复完后,再打开Log Explorer 提示No log recorders found that match the filter,would you like to view unfiltered data 
    选择yes 就看不到刚才在2中修改的日志记录,所以无法做恢复. 
    ----------------------------------------------------------------------------------
      

  6.   

    曾经无抢的狙手给出这样的解答:
    未能在 15 秒钟以内完成读或写操作的 I/O 请求 1、可关了IO检测:cc traceon(830, -1) 重启DB 
    2、另一个原因就是索引丢失而造成的扫描、哈希。。造成的并发IO  ,修复或重建  索引  
      

  7.   

    use 你的库
    go
    sp_helpfile 方便贴一下看看
      

  8.   


    db_Data                                                                                                                     1 E:\mydb\mydb_Data.MDF                                                                                                                                                                                                                                        PRIMARY 23160896 KB Unlimited 10% data only
    db_Log                                                                                                                      2 E:\mydb\mydb_Log.LDF                                                                                                                                                                                                                                         NULL 23168 KB Unlimited 10% log only
      

  9.   

    select 23160896/1024/1024 
    是22G,增长10%就会请求2G,这个是比较困难的.理论上,你的windows application事件里应该早就有提示设置较小的 FILEGROWTH 值了.
      

  10.   

    20多G时,在raid,io压力小时可以申请到空间,
    但到30G,那么每次申请新空间都要3G,时间只有3s左右,即使你是raid,一般也没有这个速度,会导致sql server不停的rollback申请活动
    前端数据要写入,但sql server又申请不成功空间,就会造成数据库堵塞而瘫痪。
      

  11.   

    在你的windows application事件中查看是否有类似信息:
    数据库 'xxxxxx' 中的文件 'xxxxx' 的自动增长已由用户取消,或已在 30296 毫秒后超时。请使用 ALTER DATABASE 为此文件设置较小的 FILEGROWTH 值,或显式设置新的文件大小。如果有,可以确定是数据库文件增长设置为10%的原因造成.
      

  12.   


    修改了数据库文件增长方式,按100M增长,重启SQL后,经观察,仍然存在如贴所示错误。