Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Не работает Select из таблицы на определённых строках.  [new]
Bonnet
Member

Откуда:
Сообщений: 21
MS SQL 2008R2

Есть база с табличкой в которой есть поле id и ещё двадцать полей. Некий скрипт туда записывает данные. Скрипт запускается джобом агента. Скрипт киллометровый. Скрипт как-то долго инсертил данные и джоб сняли руками.

База стоит в логшипинге. Модель Full.

После снятия скрипта любой select * from tbl where id <> 100 - выполняется. select * from tbl where id = 100 зависает навека.

DBCC не видит никаких ошибок. Даже после рестарта сервера картина та же. Я снял базу с доставки журналов, перевел в simplе, обрезал лог. Сделал с базы копию и востановился из неё. В востановленной базе та же картина(((

Что это может быть?
29 окт 14, 19:24    [16774706]     Ответить | Цитировать Сообщить модератору
 Re: Не работает Select из таблицы на определённых строках.  [new]
Добрый Э - Эх
Guest
Bonnet,

планы выполнения запросов смотреть не пробовал?
29 окт 14, 19:27    [16774716]     Ответить | Цитировать Сообщить модератору
 Re: Не работает Select из таблицы на определённых строках.  [new]
Crimean
Member

Откуда:
Сообщений: 13148
угу, попробовать явно индекс указать, например, при вычитке
29 окт 14, 20:33    [16774862]     Ответить | Цитировать Сообщить модератору
 Re: Не работает Select из таблицы на определённых строках.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
Crimean
угу, попробовать явно индекс указать, например, при вычитке
На 2008+ в большинстве случаев хватает forceseek.
29 окт 14, 20:48    [16774893]     Ответить | Цитировать Сообщить модератору
 Re: Не работает Select из таблицы на определённых строках.  [new]
Bonnet
Member

Откуда:
Сообщений: 21
Пробывал смотреть план. Несмотря на то что на id стоит неуникальный, некластерный индекс, идёт полный скан. Индекс удалял и создавал. Ещё один момент - если не указывать все столбцы, а только некоторые - то результат возвращается.
С forceseek возвращаются все поля, без - виснит.

Все же что это такое?
29 окт 14, 23:19    [16775281]     Ответить | Цитировать Сообщить модератору
 Re: Не работает Select из таблицы на определённых строках.  [new]
Crimean
Member

Откуда:
Сообщений: 13148
Bonnet
на id стоит неуникальный, некластерный индекс, идёт полный скан
Все же что это такое?


с конца. это - "кривой план".
кластерный индекс есть на табличке?
статистика(и) актуальна(ы)? (sp_updatestats / update statistics [with fullscan])
индекс (на ид) не совсем вдребезги фрагментирован? (dbcc showcontig хотя бы)
30 окт 14, 00:05    [16775413]     Ответить | Цитировать Сообщить модератору
 Re: Не работает Select из таблицы на определённых строках.  [new]
Bonnet
Member

Откуда:
Сообщений: 21
Crimean,

Кластерного индекса нет.
Статистика свежая.
Фрагментация 0.12%
30 окт 14, 00:57    [16775551]     Ответить | Цитировать Сообщить модератору
 Re: Не работает Select из таблицы на определённых строках.  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Bonnet
Статистика свежая.
with fullscan ?
30 окт 14, 20:55    [16779499]     Ответить | Цитировать Сообщить модератору
 Re: Не работает Select из таблицы на определённых строках.  [new]
Crimean
Member

Откуда:
Сообщений: 13148
Bonnet
Crimean,

Кластерного индекса нет.
Статистика свежая.
Фрагментация 0.12%


фрагментация данных или индекса?
30 окт 14, 22:53    [16779918]     Ответить | Цитировать Сообщить модератору
 Re: Не работает Select из таблицы на определённых строках.  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8727
Тип поля id ?

Select count (*) from ???

select cout (*) from ??? where id=100
select cout (*) from ??? where id is null


select count(distinct id) from ???
30 окт 14, 23:58    [16780098]     Ответить | Цитировать Сообщить модератору
 Re: Не работает Select из таблицы на определённых строках.  [new]
NickAlex66
Member

Откуда:
Сообщений: 319
Bonnet,

Очистите кэш планов и первым делом запустите зависающий на века запрос:
select * from tbl where id = 100 и смотрите его план.
31 окт 14, 00:32    [16780180]     Ответить | Цитировать Сообщить модератору
 Re: Не работает Select из таблицы на определённых строках.  [new]
Crimean
Member

Откуда:
Сообщений: 13148
SIMPLicity_
Тип поля id ?


кстати, да?
31 окт 14, 01:45    [16780314]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить