×

Loading...
Ad by
  • 最优利率和cashback可以申请特批,好信用好收入offer更好。请点链接扫码加微信咨询,Scotiabank -- Nick Zhang 6478812600。
Ad by
  • 最优利率和cashback可以申请特批,好信用好收入offer更好。请点链接扫码加微信咨询,Scotiabank -- Nick Zhang 6478812600。

drop and recreat index may fix the problem, if not, see inside.

step1:

to drop and recreat index.
use dbname -- go to the db
select object_name(293576084) -- you will get the table_name
select name from sysindexes where id=293576084 and indid=14 -- get index name.
drop and recreate this index.
run the problem query again.

if not fixed, and you do not want dbcc.

step2.
select count(*) from table_name -- get 1000000 rows
select top 500000 from table_name order by column_name
if no problem
select top 750000 from table_name order by column_name
else select 250000 from table_name order by column_name

continue the last step until you see which row cause problem.

step3.
check sql server online book on how to use DBCC.

step4.
if you diagnose it's table corruption and DBCC does not help, you need to bcp out data and recreat the table, and bcp in the data....

step5.
call microsoft.

step6.
fire you DBA.

fire your boss.
Report

Replies, comments and Discussions:

  • 工作学习 / IT技术讨论 / 如果sql server database出现了下面的问题,我应该怎么进行下一步的调查?谢谢。
    Server: Msg 8928, Level 16, State 1, Line 1
    Object ID 293576084, index ID 14: Page (1:1823797) could not be processed. See other errors for details.
    Server: Msg 8939, Level 16, State 1, Line 1
    Table error: Object ID 293576084, index ID 14, page (1:1823797). Test (IS_ON (BUF_IOERR, bp->bstat) && bp->berrcode) failed. Values are 2057 and -1.
    Server: Msg 8928, Level 16, State 1, Line 1
    • 1. run DBCC CHECKDB to verify if the database is corrupt 2. which sp does your server run under? 3. the error may be fixed by running dbcc checkdb with repair_allow_data_loss
    • 1. drop and recreate this index. 2. dbcc checkdb, checkindex... 3. reboot server.
      • 谢谢两位。dba问我是否可以修复数据库。她害怕修复数据库,可能会丢失数据。我想知道哪一行数据出的问题。然后她做repair,然后,我再检查一下。这样可以么。我怎么才能知道哪一行呢?
        • DBCC CHECKDB 可能会给你出问题的OBJECT ID
        • drop and recreat index may fix the problem, if not, see inside.
          step1:

          to drop and recreat index.
          use dbname -- go to the db
          select object_name(293576084) -- you will get the table_name
          select name from sysindexes where id=293576084 and indid=14 -- get index name.
          drop and recreate this index.
          run the problem query again.

          if not fixed, and you do not want dbcc.

          step2.
          select count(*) from table_name -- get 1000000 rows
          select top 500000 from table_name order by column_name
          if no problem
          select top 750000 from table_name order by column_name
          else select 250000 from table_name order by column_name

          continue the last step until you see which row cause problem.

          step3.
          check sql server online book on how to use DBCC.

          step4.
          if you diagnose it's table corruption and DBCC does not help, you need to bcp out data and recreat the table, and bcp in the data....

          step5.
          call microsoft.

          step6.
          fire you DBA.

          fire your boss.
          • 专家专家,以为你只做sybase呢
            • thank you man. I just steal some knowledge from Sybase... do not tell Sybase :)
              • 俺决不泄密,不过以后俺有问题向你请教你可不许推辞啊
          • Thanks so much. I will just ask DBA do the job now. I do not have right to do those stuff. It is too dangerous for me too. :P
        • 这应该是 dba 的活, 你最好别管。