none
Запрос на добавление выполняется то 4 часа, то 40 минут... RRS feed

  • Вопрос

  • Добрый день, господа гуру!

    Вводная: обслуживаю одну фирму, имеем MS SQL 2005(32bit) на MS Windows Server 2008(64bit), база данных размером 14Гиг, для БД настроено обслуживание - архивания, ребилд, рерганизация, обновление стат и прочее, вообще все как по уставу.. Приложение которое работает с БД трудностей не испытывает, все работает как часы без нареканий уже 12 лет(тьфу, тьфу, тьфу).... но .... есть один  динамический запрос: создается набор данных и в цикле идет обход по выборке и запускается хранимая процедура, которая добавляет записи (INSERT INTO dbo.table  EXEC repProcERC ....) в простенькую таблицу...

    Так вот... данный запрос выполняется ровно один раз в месяц и примерно один раз из трёх, а даже и реже,  данный запрос заполняет таблицу 60 000 записей в течении  4 часов, в остальных случаях  время выполнения 40 минут! От чего это зависит, ума не приложу... проверяли уже всё что только можно... Причем иногда, выгоняли всех юзверов  из БД и выполняли и - 4 а то и 5 часов... Подскажите пожалуйста, в какую хоть сторону смотреть.... Скрипт могу предоставить если надо... Хелп ми плиз, друзья-товарищи! 

    1 февраля 2021 г. 13:56

Ответы

  • это может быть что угодно, дефект при чтении, при обработке в скрипте, нехватка памяти, задержка на уровне сети при подключении к базе, задержка выполнения самого квери в базе. На 1 операцию эта задержка может составлять десятую долю секунды, но когда операций 60к, то время увеличивается многократно

    лично я бы ставил на мемори лик, и как следствие на нехватку памяти учитывая что и ос, и sql те еще мамонты и необновлялись годами


    The opinion expressed by me is not an official position of Microsoft

    1 февраля 2021 г. 14:40
    Модератор

Все ответы

  • В момент возникновения проблемы смотрите в сторону блокировок.

    Наверняка вставляемые записи откуда-то извлекаются.

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

    1 февраля 2021 г. 14:02
  • Если перезапустить сам сервер, блокировки же должны исчезнуть? Пробовали...  
    1 февраля 2021 г. 14:09
  • 1 запись в транзакцию выполняется?

    почему бы не подготовить 1 запрос со всеми данными и не выполнить 1 запрос за раз? 


    The opinion expressed by me is not an official position of Microsoft

    1 февраля 2021 г. 14:22
    Модератор
  • Грубо говоря - да, одна запись в транзакцию.... Один запрос пакетом уже готовлю.... но всё же интересно аж зуб крошется, что такое происходит, что вот так тормозит выполнение... 
    1 февраля 2021 г. 14:30
  • это может быть что угодно, дефект при чтении, при обработке в скрипте, нехватка памяти, задержка на уровне сети при подключении к базе, задержка выполнения самого квери в базе. На 1 операцию эта задержка может составлять десятую долю секунды, но когда операций 60к, то время увеличивается многократно

    лично я бы ставил на мемори лик, и как следствие на нехватку памяти учитывая что и ос, и sql те еще мамонты и необновлялись годами


    The opinion expressed by me is not an official position of Microsoft

    1 февраля 2021 г. 14:40
    Модератор
  • Здравствуйте, fenix_v6

    Вам удалось решить данную проблему?


    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.

    23 февраля 2021 г. 11:24
    Модератор