powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Все началось неожиданно...
7 сообщений из 7, страница 1 из 1
Все началось неожиданно...
    #32005054
Есения
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет Всем!
Написала в DTS VBScript, который коннектился через ADO к Sales.mdb, делал выборку и сохранял через другой ADO-connect в SQL Server 2000. Все работало отлично... Перенесла Script в JOB. Все опять нормально. Только заметила, что:
WHILE NOT rs.EOF
myStr="INSERT INTO ....
cn.Execute myStr
rs.MoveNext
Wend
начал работать медленнее...
Пару дней близко не подходила к Job'у. Сегодня 2646 записей было внесено в таблицу за 12 минут!
Через несколько тестов JOB перестал нормально заканчиваться. Выдавалось сообщение об ошибке, хотя таблица заполнялась, правда с каким-то мусоров в конце...
Ребята, что бы это могло случиться? Никаких изменений НИГДЕ не производилось... Я вся в отчаянии...
Спасибо Всем.
...
Рейтинг: 0 / 0
Все началось неожиданно...
    #32005055
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хоть вы и не сообщили никаких подробностей о своем серевере и какое именно сообщение об ошибке выдается, рискну высказать свои предположения

1. Может быть лучше отказаться от VBScript и использовать в DTS непосредственные коннекты к источникам данных (Microsoft Access Microsoft и OLE DB Providr for SQL Server). IMHO так будет по-надежнее.

2. А что собственно в момент работы скрипта(конкретнее, при добавлении записи)происходит на SQL сервере, какова его загрузка, какие процессы выполняются(или может быть ожидают освобождения ресурсов, занятых). Возможно, ваша команда INSERT INTO не выполняется из-за таймаута сервера, который занят другими задачами или просто испытывает недостаток ресурсов.

3. Каков размер таблицы в которую происходит добавление данных. Есть ли у таблицы индексы (особенно кластерные), которые при добавлении тоже требуют времени на создание ключа (а при кластерном индексе еще и физического перемещения данных, если добавление происходит куда-нибудь в середину таблицы).

4. Имеются ли у таблицы в которую происходит добавление данных триггеры INSERT.

5. Возможно, что при таком частом обновлении у вас просто большая дефрагментация данных.
В этом случае используйте команды DBCC SHOWCONTIG(для анализа) и DBCC INDEXDEFRAG.
...
Рейтинг: 0 / 0
Все началось неожиданно...
    #32005056
Есения
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемый Glory!
Спасибо за отклик!


>Хоть вы и не сообщили никаких подробностей о своем серевере
Эро Pentium III-750, 128MB, 40GB, Win2K, SQL Server 2000. Сервер почти только установлен и никаких кроме этой задач не решает.

>какое именно сообщение об ошибке выдается
JOB завершается с Error. Никакого другого сообщения в Event Viewer нет.

1. Задачей является создание на SQL Server'e таблиц, являющихся выборками из всевозможных гетерогенных источников и поддержание почти онлайнового обновления данных. JOB "New" (старт после сбоя комп-а) стартует при запуске MSSQLAgent и а) удаляет таблицы на сервере, создает заново; б)удаляет и создает вновь триггеры на гетерогенных источниках и таблицы для сохранения изменений от них; в) заполняет таблицы на сервере.

2. Как я уже говорила - сервер решает ТОЛЬКО эту задачу (пока
)

3. Таблица бывает пуста. Индексов нет.

4. Таблицы не имеют триггеров.

5. >Возможно, что при таком частом обновлении у вас просто большая дефрагментация данных.
JOB'ы находятся в процессе тестирования и потому часто запускаются в связи с отладкой.

Я надеюсь, что достаточно полно предоставила на Ваш суд
все, чем располагаю...
Надеюсь на помощь...
...
Рейтинг: 0 / 0
Все началось неожиданно...
    #32005066
Moth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может это поможет.
На самом деле прочитать сообщение об ошибке возможно.
Щелкнуть правой кнопкой по Job и выбрать View Job History...
Там то и можно прочитать историю всех выполнений.

moth@mail.primorye.ru
...
Рейтинг: 0 / 0
Все началось неожиданно...
    #32005067
Есения
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемый Moth!
Спасибо за подсказку! Как я могла забыть про это? Там ведь есть даже чек-боксик для деталировки job'a, если он состоит из нескольких шагов. Видать я "слаба" в критических ситуациях...

А сообщение следующее: не описана переменная "DTSTaskExecResult_Success" !?!?!?
А раньше ведь работала!!! Я скопировала целый скрипт из DTS!
...
Рейтинг: 0 / 0
Все началось неожиданно...
    #32005068
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. В таком случае хотелось бы взглянуть на текст вашего скрипта(ов) (если это не секрет).
2. Что происходит при "ручном" запуске DTS Package - какие шаги выполняются, в нужной ли последовательности и какой все-таки шаг вызывает ошибку
3. И все таки я бы еще раз посоветовал в DTS Package использовать вместо ActiveX скриптов, которые создают объект ADODB.Connection(если я правильно понял) для подсоединения к гетерогенным источникам данных, использовать те виды коннектов, которые уже имеются у SQL2000. Например, к MS Access (Sales.mdb как раз такой случай).
4. Если это невозможно, то я бы порекомендовал избавиться от цикла
WHILE NOT rs.EOF
myStr="INSERT INTO ....
cn.Execute myStr
rs.MoveNext
Wend
таким образом, что переписать данные из источника в простой текстовый файл с разделителями и его уже использовать для добавления данных (Connection - Text File(Source)).

Из личного опыта могу рассказать: был большой входной текстовый файл (2-3 млн. строк), в виду его неоднородности приходилось открывать его на низком уровне, читать в цикле данные, формировать строку INSERT INTO и выполнять. Так вот, регулярно, через 50-60 тыс запросов сервер на команду "executesql" возвращал ошибку. Стоило подождать 5-10 секунд и повторить ту же команду - она срабатывала без проблема и цикл возобновлялся до следующего остонова...В качестве клиента правда был Foxpro 7, но в качестве коннектов я попробовал и ODBC, и DMO, и ADODB - везде ситуация повторялась. Единственным косвенным объяснением(и то не причины) из BOL была рекомендация использовать при массовом добавлении данных специальные утилиты.

PS
Для того, чтобы результаты выполнения DTS Package записывался в Event Viewer, нужно при редактировании DTS Package в его Properties-Logging установить Log package execution to SQL Server
...
Рейтинг: 0 / 0
Все началось неожиданно...
    #32005099
Фотография Александр Гладченко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если Вы не увеличили максимальны размер строки в таблице msdb..sysjobhistory, Вы можете столкнутся с ограничением, которое отслеживает, что бы максимальное количество записей журнала истории для всех заданий не превышало одной тысячей. Причём каждое отдельное задание не сможет занимать более ста записей. С эти могут быть связаны некоторые проблемы выполнения заданий. На всякий случай, прочтите внимательно указанную ниже статью и проанализируйте описанные в ней возможные проблемы и пути их устранения:
Автоматизация в SQL Server 7.0
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Все началось неожиданно...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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