|   |   | 
| 
 | v7: Продолжаем тему с обновлением статистики на MS SQL сервере | ☑ | ||
|---|---|---|---|---|
| 0
    
        dk 16.09.15✎ 13:39 | 
        Исходные:
 1с 77 MS SQL 2008 R2 1c++ Проблема: Есть один запрос, который начинает тормозить если его формируешь по новому складу. Т.е. выбираешь склад1 - время выполнения несколько секунд, выбираешь склад2 - время выполнения около получаса. Текст запроса и планы запроса ниже | |||
| 1
    
        dk 16.09.15✎ 13:40 | 
        1с++ запрос
 
T-SQL запрос 
 | |||
| 4
    
        ДенисЧ 16.09.15✎ 13:44 | 
        А статистику-то обновил?     | |||
| 5
    
        dk 16.09.15✎ 13:46 | 
        короче проблема с отобращением плана тут - попозже файлом скину куда-нить
 -------- (4) Да полное обновление статистики делал сначала тожа была такая проблема - решилась обновление одной здоровой таблицы сейчас это не помогает почему-то | |||
| 7
    
        dk 16.09.15✎ 13:50 | ||||
| 8
    
        Ёпрст гуру 16.09.15✎ 13:54 | 
        (0) а зачем в этом запрсе смотреть движения регистра ? Когда всё и так есть в остатках ?..     | |||
| 9
    
        Ёпрст гуру 16.09.15✎ 13:56 | 
        ну и вот это
 INNER JOIN $Справочник.Контрагенты СпрКонтрДоп (NoLock) ON СпрКонтрДоп.ID = Запр.Поставщик можно попробовать пихнуть унутрь вт и первого запроса в юнион | |||
| 10
    
        Ёпрст гуру 16.09.15✎ 13:57 | 
        Хотя, непонятен изначально сам запрос движений за период + останки..     | |||
| 11
    
        Провинциальный 1сник 16.09.15✎ 13:58 | 
        Судя по планам, задействуется параллелизм. А по всем рекомендациям, его лучше отключать. Почему не отключен?     | |||
| 12
    
        dk 16.09.15✎ 14:02 | 
        речь сейчас не об оптимизации запроса
 вопрос почему при смене одного склада на другой резко падает скорость | |||
| 13
    
        dk 16.09.15✎ 14:03 | 
        (11) max DOP = 2     | |||
| 14
    
        Ёпрст гуру 16.09.15✎ 14:13 | 
        (13) поставь 1     | |||
| 15
    
        dk 16.09.15✎ 15:25 | 
        (14) ставил OPTION (MAXDOP 1) - не помогло (
 ------ Похоже раскопал где собака порылась на сервере max dop = 2 однако картинка в студии более интересная там 4 блока по 5 строк в каждом 2 блока running 2 блока suspended и походу они меняются др / др а дело вроде в плевой строчке CREATE TABLE #ПослПост (Товар Char(9), СтранаПоставщик Char(9), Дата DateTime, UNIQUE CLUSTERED (Товар)) а именно в индексе UNIQUE CLUSTERED (Товар) пробовал просто UNIQUE (Товар) - тоже тормозит количество строк в итоговой таблице около 1000 ----- убрал индекс и все залетало | |||
| 16
    
        Гёдза 16.09.15✎ 15:26 | 
        Это случайно не paramers sniffing?     | |||
| 17
    
        Гёдза 16.09.15✎ 15:28 | 
        Хотя нет, не в нем     | |||
| 18
    
        Гёдза 16.09.15✎ 15:28 | 
        может темп дб умирает?     | |||
| 19
    
        dk 16.09.15✎ 15:31 | ||||
| 20
    
        Гёдза 16.09.15✎ 15:34 | 
        можешь планы в картинках показать?     | |||
| 21
    
        sapphire 16.09.15✎ 15:39 | 
        (15) declare  @ПослПост TABLE (Товар Char(9), СтранаПоставщик Char(9), Дата DateTime, PRIMARY KEY CLUSTERED(Товар) )     | |||
| 22
    
        dk 16.09.15✎ 15:41 | 
        (21) это типа в оперативке таблица?
 что-то у нас этот вариант не приняли - глюки были | |||
| 23
    
        dk 16.09.15✎ 16:08 | 
        в скуле щас оба склада одинаково быстро выполняются
 похоже проблема была в INSERT #ПослПост | |||
| 24
    
        ADirks 17.09.15✎ 14:04 | 
        кстати, про статистики
 вот тут есть годные скрипты http://blogs.msdn.com/b/blogdoezequiel/archive/2012/09/18/about-maintenance-plans-grooming-sql-server.aspx и ещё, для 2008 параллелизм как раз таки лучше включить, там это наконец-то действительно работает. | |||
| 25
    
        rs_trade 17.09.15✎ 14:07 | 
        сколько платят за проблему?     | |||
| 26
    
        gigi789 17.09.15✎ 14:08 | 
        (24) параллелизм+1     | |||
| 27
    
        ДенисЧ 17.09.15✎ 14:09 | 
        Реально встречал случаи, когда параллелизм тормозил запросы в разы     | |||
| 28
    
        ADirks 17.09.15✎ 14:23 | 
        (27) именно на 2008?     | |||
| 29
    
        ДенисЧ 17.09.15✎ 14:23 | 
        (28) Ага.
 Но не спрашивай примеры, уже не помню. | |||
| 30
    
        ДенисЧ 17.09.15✎ 14:24 | 
        Причём р2 64 бит со всеми сп     | |||
| 31
    
        dk 17.09.15✎ 14:46 | 
        поторопился я с решением проблемы - сегодня снова тормоза - уже на запросе, а не на вставке во временную
 будем копать дальше, пока другие задачи время отнимают (25) уважуха и спасибо ) | |||
| 32
    
        dk 24.09.15✎ 12:17 | 
        сегодня снова занимался этой проблемой
 выяснил, что тормозит на строке INNER JOIN _1sJourn Журнал2 (NoLock) ON Журнал2.IDDoc = RIGHT(Запр2.Поставка,9) поменял на INNER JOIN _1sJourn Журнал2 (NoLock) ON Журнал2.IDDoc = Запр2.Поставка и запрос залетал вообще странно т.к. записей в запр2 около тысячи, а вот в _1sJourn записей умотаться | |||
| 33
    
        dk 24.09.15✎ 12:19 | 
        т.е. тут уже не статистике дело, а в неверном плане запроса     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |