Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Table scan для системных таблиц

2 views
Skip to first unread message

Sergey Gerasin

unread,
May 22, 2006, 4:21:10 AM5/22/06
to
Привет всем!

Столкнулся с интересной проблемой и просто в ступоре.

Значит, ситуация. Есть битая база MS SQL 2000 (куча torn pages - полетели
винты в раиде). База подцеплена стандартным хитрым методом, путем подмены
файлов БД с таким же именем и ручной простановкой статуса emergency в
sysdatabases.

95% данных присутствует и читается. НО! Обратиться запросом к таблицам,
выполнить процедуры и т.п., начинающиеся с буквы Z, не получается - говорит
про torn page, причем в одном и том же месте для всех. select * from
sysobjects в базе отрабатывает нормально, т.е. однозначен вывод - битый
индекс ncsysobjects.

Логично - при выполнении запросов сервер обращается за информацией об
объекте в sysobjects, поиск по имени выполняет с помощью индекса - и
обламывается.

ВНИМАНИЕ, ВОПРОС: можно ли как-то заставить оптимизатор ВООБЩЕ не
использовать оптимизацию в запросе? Т.е. выполнять простой table scan для
_всех_ таблиц, включая и системные, напрямую в запросе не упомянутые?

Перестроить индекс, как явствует из контекста, я не могу - данные доступны
только на чтение.

--
С уважением, Сергей.
E-mail: ser...@energomash.ru

Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

Sergey Gerasin

unread,
May 22, 2006, 5:54:33 AM5/22/06
to
Привет еще раз :)

SG> Столкнулся с интересной проблемой и просто в ступоре.

В дополнение - подтверждение "битости" индекса:

select * from sysobjects where name = 'Z_Table_Name' -- обламывается на torn
page
select * from sysobjects with (index(0)) where name = 'Z_Table_Name' --
выполняется нормально

Да, MS SQL 2000 - SP3. Сорри, что не упомянул сразу.

--
С уважением, Сергей.
ser...@energomash.ru
ICQ: 63474652

Denis Chernayev

unread,
May 22, 2006, 10:52:52 AM5/22/06
to
Привет Sergey!

22 мая 2006 года (а было тогда 12:21)
Sergey Gerasin в своем письме к All писал:

SG> Перестроить индекс, как явствует из контекста, я не могу - данные
SG> доступны только на чтение.

Тупое предложение - а если просто перенести (через DTS) все данные в новую
базу?

-+-
С уважением, Denis 22 мая 2006 года

[winamp is playing]:: Abba - Super Trouper

0 new messages