Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Производительность запроса. Не понимаю связи. / 7 сообщений из 7, страница 1 из 1
13.09.2002, 07:53:36
    #32050292
AndreK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Производительность запроса. Не понимаю связи.
Доброго времени суток всем!

Вот такой запрос, возвращающий 1845 строк:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT SVED.FIO, SVED.DOL, isp_otp.osn, isp_otp.dop, 
    isp_otp.fmp, isp_otp.d_otp, 
    isp_otp.osn + isp_otp.dop + isp_otp.fmp AS vsego, 
    { fn MONTH(isp_otp.d_otp) } AS mes, { fn YEAR(isp_otp.d_otp) 
    } AS god, SVED.UCHAST, SVED.HOMEP, SVED.BRIG, 
    SVED.id_nom, otpusk.d_isp
FROM isp_otp INNER JOIN
    otpusk ON isp_otp.n_zap = otpusk.n_zap INNER JOIN
    SVED ON otpusk.id_nom = SVED.id_nom


Время исполнения около 40 сек. В самой громоздкой табл. SVED 2000 строк. Заинтересовался: "А что так долго?". IndexWizard в QA сказал, что индексы не нужны, тк. либо таблицы размещены менее чем на 10 страницах, либо требуемые индексы уже есть, либо нужен кластерный индекс. Некластерные в самом деле есть. Создал кластерный на isp_otp.n_zap, в следствии чего избавился от сканирования isp_otp. = Никакого КПД - те же 40 сек. Пол-дня убил бесполезно. НО!
Перегрузил свою клиентскую машину, время исполнения стало прим. 15 сек. ???!!! Перегрузил ещё раз =35 сек. Перегрузился =2 сек!!!??? запустил Profile, наблюдаю за Duration... После каждой перезагрузки клинтской машины время исп. запроса сервером может поменяться.

А теперь вопрос:
- Duration в Profile - это время работы сервера , или время выполнения запроса вместе с перекачкой результата по сети или без?
- Как оно (время) зависит от перезагрузки клинта?
- Что и где почитать, посмотреть (DBCC, Events, Filters в Profile..., Statistics NT, SQL...)?

На закуску:
- MSSQL7.0, на серваке никого более нет кроме меня, он ничем более не "занимается" кроме моих экспериментов.
- Я тут Вордовый файл со статистикой сляпал. Желающим могу послать.
...
Рейтинг: 0 / 0
13.09.2002, 08:19:41
    #32050296
Слон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Производительность запроса. Не понимаю связи.
Вариантов 2:

- Сеть
- Клиент.

Надо проверить, как запрос исполняется на самом сервере и на другом клиенте. Может помочь переустановка MDAC

-- Слон
...
Рейтинг: 0 / 0
13.09.2002, 09:08:09
    #32050302
Bzzzzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Производительность запроса. Не понимаю связи.
Да убей оптимизатор и посмотри! Тока в запросе не забудь таблы в правильном порядке выставить....
...
Рейтинг: 0 / 0
13.09.2002, 09:28:36
    #32050308
av_2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Производительность запроса. Не понимаю связи.
Лучше намыль план исполнения запроса
admin@avtoinvest.ru
...
Рейтинг: 0 / 0
13.09.2002, 11:28:11
    #32050374
AndreK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Производительность запроса. Не понимаю связи.
Прошу пардону за задержку. Только повесил вопрос как "дёрнули на другую машину".

-- Слон
Надо проверить, как запрос исполняется на самом сервере и на другом клиенте

На другом клинте (потенциально их у меня 2) творится то же самое. Сервак с такой частотой перегружать зело проблемно, сейчас время исполнения того же самого 25-30 сек.

-- Bzzzzz
Да убей оптимизатор и посмотри! Тока в запросе не забудь таблы в правильном порядке выставить....

Спасибо за идею. Не знаю как делать ни то, ни другое. Полез узнавать

-- ALL
И все-таки "Duration в Profile - это время работы сервера, или время выполнения запроса вместе с перекачкой результата по сети или без?
". Я почему-то был уверен что это чистое время работы сервера, без сети. Как проверить?
...
Рейтинг: 0 / 0
13.09.2002, 13:21:39
    #32050415
Bzzzzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Производительность запроса. Не понимаю связи.
Если сервер не основательно загружен. Пусть выборка производится во временную таблу. Путем сравнения результатов запроса с выводом из темповой таблы и без оного - реально проверить. ИМХО.
...
Рейтинг: 0 / 0
13.09.2002, 14:20:04
    #32050428
Bzzzzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Производительность запроса. Не понимаю связи.
Если я прально понял суть таблиц - самый скоростной вариант:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
set forceplan on
SELECT s.FIO,
       s.DOL,
       i.osn,
       i.dop, 
       i.fmp,
       i.d_otp, 
       i.osn + i.dop + i.fmp AS vsego, 
       { fn MONTH(i.d_otp) } AS mes, 
       { fn YEAR(i.d_otp)  } AS god, 
       s.UCHAST,
       s.HOMEP,
       s.BRIG, 
       s.id_nom,
       o.d_isp

      FROM SVED    s 
INNER JOIN otpusk  o (index имя) ON o.id_nom = s.id_nom
INNER JOIN isp_otp i (index имя) ON i.n_zap  = o.n_zap 
set forceplan off
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Производительность запроса. Не понимаю связи. / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]