Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Требуется помощь экстрасенса (потомственного знатока дебрей MS SQL)  [new]
Ибн Хоттаб
Member

Откуда: Den marsianske sosialistiske sovjetrepublikk
Сообщений: 629
Сами мы не местные, ораклоиды, угораздило связаться. SQL Server 2008 делает очень странную вещь, которую я не только не могу победить, но даже понять. Помогите кто чем может пожалуйста.

Имеется вьюха, которая выполняет роль импровизированной таблицы фактов в импровизированном же ХД, которая называется FACT. Вьюха возвращает примерно миллион записей. Писал ее не я, внутренности предлагаю пока оставить вне рассмотрения. Во вьюхе имеется поле типа uniqidentifier, которое называется ID.

Запрос:
select count (distinct ID) from FACT
выполняется страшно медленно, подождал 20 минут и снял, результата так и не дождался, это на серваке о 12ти ядрах и 16 гигах оперативы. Можно подумать что проблема во внутренностях вьюхи. Однако! Запрос:
select count (distinct ID) from (select TOP 200000 * from FACT) R
выполняется секунды три! И TOP 300000 секунды три. Методом научного тыка было установлено, что тормоза начинаются после TOP 307000.
23 окт 12, 05:01    [13359908]     Ответить | Цитировать Сообщить модератору
 Re: Требуется помощь экстрасенса (потомственного знатока дебрей MS SQL)  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Ибн Хоттаб
Сами мы не местные, ораклоиды
Так вот почему ораклоидам больше платят. Они умеют оптимизировать не смотря ни текст запроса ни планы.
23 окт 12, 05:19    [13359914]     Ответить | Цитировать Сообщить модератору
 Re: Требуется помощь экстрасенса (потомственного знатока дебрей MS SQL)  [new]
rata
Member

Откуда:
Сообщений: 130
Где-то в районе 307000 записи неустановленный злодей все насмерть заблокировал?
Для проверки гипотезы- простейшее решение- перезапустить службу SQL :-)
23 окт 12, 07:40    [13359994]     Ответить | Цитировать Сообщить модератору
 Re: Требуется помощь экстрасенса (потомственного знатока дебрей MS SQL)  [new]
kain111
Member

Откуда:
Сообщений: 227
а другие запросы выполнялись к таблице ?
может просто какая то запись битая и не может быть прочитана. Не уверен точно, но что такое было у меня в практике.

ну и конечно же лучше код вьюхи в студию.
23 окт 12, 08:18    [13360042]     Ответить | Цитировать Сообщить модератору
 Re: Требуется помощь экстрасенса (потомственного знатока дебрей MS SQL)  [new]
Orland
Member

Откуда: Ростов
Сообщений: 71
Зуб даю до 307000 один план вьюхи, а после другой=))) покажите вьюху и планы в двух случаях
23 окт 12, 08:53    [13360102]     Ответить | Цитировать Сообщить модератору
 Re: Требуется помощь экстрасенса (потомственного знатока дебрей MS SQL)  [new]
swaap
Member

Откуда:
Сообщений: 109
есть ли на вьюхе уникальный индекс? если да, то дописать хинт with (noexpand), если нет, то создать индекс + дописать хинт
23 окт 12, 09:15    [13360172]     Ответить | Цитировать Сообщить модератору
 Re: Требуется помощь экстрасенса (потомственного знатока дебрей MS SQL)  [new]
stock333
Guest
Orland,

тоже об этом подумал.
23 окт 12, 11:33    [13361081]     Ответить | Цитировать Сообщить модератору
 Re: Требуется помощь экстрасенса (потомственного знатока дебрей MS SQL)  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
перекомпилировать вью, или можно грохунть и создать по-новому.
23 окт 12, 13:43    [13362324]     Ответить | Цитировать Сообщить модератору
 Re: Требуется помощь экстрасенса (потомственного знатока дебрей MS SQL)  [new]
stock333
Guest
Winnipuh
перекомпилировать вью, или можно грохунть и создать по-новому.


ага)) но сначала все же попытаться разобраться во внутренностях, а то после компеляции вообще может перестать работать))
23 окт 12, 16:23    [13363790]     Ответить | Цитировать Сообщить модератору
 Re: Требуется помощь экстрасенса (потомственного знатока дебрей MS SQL)  [new]
Зайцев Фёдор
Member

Откуда: Лужки
Сообщений: 5308
Ибн Хоттаб
select count (distinct ID) from (select TOP 200000 * from FACT) R

Этот запрос из пальца высосан или действительно применяется в работе?
Просто глупый он очень.
23 окт 12, 16:53    [13364103]     Ответить | Цитировать Сообщить модератору
 Re: Требуется помощь экстрасенса (потомственного знатока дебрей MS SQL)  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Зайцев Фёдор
Ибн Хоттаб
select count (distinct ID) from (select TOP 200000 * from FACT) R

Этот запрос из пальца высосан или действительно применяется в работе?
Просто глупый он очень.


нормальный себе запрос для быстрого ограничения к-ва строк
дебаг он и есть дебаг, там и не такие странные запросы бывают
23 окт 12, 17:13    [13364259]     Ответить | Цитировать Сообщить модератору
 Re: Требуется помощь экстрасенса (потомственного знатока дебрей MS SQL)  [new]
уникло
Guest
Ибн Хоттаб,

1
автор
поле типа uniqidentifier

+2
автор
которое называется ID

=
автор
select count (distinct ID)


уникалили-уникалили, да не выуниканивалили.

нужны еще гуиды. больше гуидов.
23 окт 12, 17:24    [13364361]     Ответить | Цитировать Сообщить модератору
 Re: Требуется помощь экстрасенса (потомственного знатока дебрей MS SQL)  [new]
Зайцев Фёдор
Member

Откуда: Лужки
Сообщений: 5308
locky
нормальный себе запрос для быстрого ограничения к-ва строк

нужно одно поле - накуа select * ?
top без сортировки - для чего? для получения каких-то разных каждый раз записей?
23 окт 12, 17:25    [13364377]     Ответить | Цитировать Сообщить модератору
 Re: Требуется помощь экстрасенса (потомственного знатока дебрей MS SQL)  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Зайцев Фёдор
locky
нормальный себе запрос для быстрого ограничения к-ва строк

нужно одно поле - накуа select * ?
top без сортировки - для чего? для получения каких-то разных каждый раз записей?


для подзапросов не имеет значения перечисление полей

а без сортировки - человек просто хотел посмотреть, будет ли тормозить на ограниченном наборе данных
23 окт 12, 17:32    [13364430]     Ответить | Цитировать Сообщить модератору
 Re: Требуется помощь экстрасенса (потомственного знатока дебрей MS SQL)  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
уникло
Ибн Хоттаб,

1
автор
поле типа uniqidentifier

+2
автор
которое называется ID

=
автор
select count (distinct ID)


уникалили-уникалили, да не выуниканивалили.

нужны еще гуиды. больше гуидов.


представь себе - ID во времени...
Вчера, сегодня, завтра.... Уже 3 одинаковых ID, как минимум.
23 окт 12, 17:33    [13364437]     Ответить | Цитировать Сообщить модератору
 Re: Требуется помощь экстрасенса (потомственного знатока дебрей MS SQL)  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3752
давайте хотябы код вьюхи
23 окт 12, 19:09    [13364943]     Ответить | Цитировать Сообщить модератору
 Re: Требуется помощь экстрасенса (потомственного знатока дебрей MS SQL)  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Ivan Durak
давайте хотябы код вьюхи
Кода не будет наверное, из нас же экстрасенсов тренируют.
23 окт 12, 19:30    [13365014]     Ответить | Цитировать Сообщить модератору
 Re: Требуется помощь экстрасенса (потомственного знатока дебрей MS SQL)  [new]
Ибн Хоттаб
Member

Откуда: Den marsianske sosialistiske sovjetrepublikk
Сообщений: 629
Ого сколько ответов :) Спасибо всем.

Магия однако продолжается. Сегодня все работает обычным образом, никаких тормозов, хотя никаких изменений я не вносил никуда. И вопрос теперь могу конкретизировать. Что это было блин? Ответ ожидаю в формате "как потомственный магистр MS SQL могу сказать, что я видел нечто похожее, это полтерГейтс, дабы такого не повторилось повесь портрет Балмера в серверной", или что-то в этом роде.

По поводу плана запроса. Я не думаю что здесь речь идет об оптимизации запросов, а скорее о глюке/особенности сервера, может быть кто-то сталкивался с таким же и может объяснить почему такое может происходить. Ну или сталкивался и не может, тогда я хотя бы буду знать что я не одинок и иметь в виду что проблема есть. Запросы оптимизировать я и сам могу.
23 окт 12, 20:51    [13365303]     Ответить | Цитировать Сообщить модератору
 Re: Требуется помощь экстрасенса (потомственного знатока дебрей MS SQL)  [new]
Читатель неместный
Guest
автор
Запросы оптимизировать я и сам могу.
тыб почитал топик и понял как оптимизировать вьюхи
23 окт 12, 20:58    [13365325]     Ответить | Цитировать Сообщить модератору
 Re: Требуется помощь экстрасенса (потомственного знатока дебрей MS SQL)  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3422
Поди, статистика протухла, а потом обновилась. Или вьюха на рекомпайл ушла.

Вы ж планы не показываете, а экстрасенсы здесь так себе.
24 окт 12, 02:09    [13365992]     Ответить | Цитировать Сообщить модератору
 Re: Требуется помощь экстрасенса (потомственного знатока дебрей MS SQL)  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Ибн Хоттаб
Запросы оптимизировать я и сам могу.
Не похоже, вам бубен подавай.

Будь я модератором закрыл бы уже этот топик, или перенес его в раздел астрологии.
24 окт 12, 02:20    [13366001]     Ответить | Цитировать Сообщить модератору
 Re: Требуется помощь экстрасенса (потомственного знатока дебрей MS SQL)  [new]
Ибн Хоттаб
Member

Откуда: Den marsianske sosialistiske sovjetrepublikk
Сообщений: 629
Ennor Tiegael
Поди, статистика протухла, а потом обновилась.


Наконец то! Мил человек, а можно поподробнее про сие?
24 окт 12, 02:36    [13366008]     Ответить | Цитировать Сообщить модератору
 Re: Требуется помощь экстрасенса (потомственного знатока дебрей MS SQL)  [new]
из кэша выпало-впало
Guest
Ибн Хоттаб
Ennor Tiegael
Поди, статистика протухла, а потом обновилась.


Наконец то! Мил человек, а можно поподробнее про сие?

а кофейная гуща говорит что были разные условия тестирования и нагрузка сервера отличалась. чему верить?
карты таро говорят, что через ночь случился ребилд индекса. ой, все так сложно...
24 окт 12, 09:04    [13366373]     Ответить | Цитировать Сообщить модератору
 Re: Требуется помощь экстрасенса (потомственного знатока дебрей MS SQL)  [new]
aWlad
Member

Откуда: Москва
Сообщений: 42
Ибн Хоттаб,

Разрешите вмешаться в Ваш интеллектуальный спор: "план-запроса-оптимизатор-код-вьюхи" - пока отставим. Это танцы и "бубен".
Пока простой вопрос: про "кэширование" в винде слыхали? "Вчера по пять, но большие, а сегодня - по три, но - маленькие" - "своп" в винде может наступить в любой момент (с чем Вы, вероятно, не сталкивались на ORACLE), при этом будут жуткие "тормоза", сколько ни исследуйте "план запроса SQL" - не найдете ответа. Второй вопрос - фрагментация (физическая, логическая, внешняя,...), наверное, не исследовали. И последнее, ИМХО (сейчас будут бить), - UNIQUE GUID'ы - не самый лучший ключ для индекса. PK всегда уникален и без GUID'а (учитывая его размер), так зачем "платить больше"??
По вопросу COUNT: Вы уверены, что нужно считать вот так? Если просто узнать число записей - есть системные таблицы (и вьюхи для них). У меня были программисты, которые отсчитывали ровно миллион записей от начала, - не учли только одной простой вещи: каждую минуту "ссыпалось" примерно 300тыс. новых...
25 окт 12, 17:36    [13376043]     Ответить | Цитировать Сообщить модератору
 Re: Требуется помощь экстрасенса (потомственного знатока дебрей MS SQL)  [new]
Ибн Хоттаб
Member

Откуда: Den marsianske sosialistiske sovjetrepublikk
Сообщений: 629
aWlad, да, я уверен, что план запроса ни причем, да, Вы правы в том что я не сталкивался ни с чем похожим на Oracle и кстати не разбираюсь в тюнинге SQL Server именно как сервера, почему и задаю вопросы, и да, я согласен что ключи типа uniqidentifier это не лучший подход. По поводу первого и второго я рад в теме каждому человеку который может посмотреть на проблему шире и каждой идее. По поводу третьего я к сожалению сделать ничего не могу, не имею возможности менять архитектуру.

Возвращаясь к проблеме. Я естественно не собираюсь поднимать скилы MS SQL DBA, но хотелось бы знать куда смотреть, потому что если такое произойдет в продакшне, мне стресс будут делать.

Ну и по поводу Count. Мне не нужно было считать строки, мне нужно было оценить производительность работы сервера, не точно, просто понять работает он как обычно, или есть проблема. Как оказалось она была.
25 окт 12, 19:51    [13376528]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить