Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Все началось неожиданно...
|
|||
|---|---|---|---|
|
#18+
Привет Всем! Написала в 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 перестал нормально заканчиваться. Выдавалось сообщение об ошибке, хотя таблица заполнялась, правда с каким-то мусоров в конце... Ребята, что бы это могло случиться? Никаких изменений НИГДЕ не производилось... Я вся в отчаянии... Спасибо Всем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2001, 20:29 |
|
||
|
Все началось неожиданно...
|
|||
|---|---|---|---|
|
#18+
Хоть вы и не сообщили никаких подробностей о своем серевере и какое именно сообщение об ошибке выдается, рискну высказать свои предположения 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2001, 21:05 |
|
||
|
Все началось неожиданно...
|
|||
|---|---|---|---|
|
#18+
Уважаемый 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'ы находятся в процессе тестирования и потому часто запускаются в связи с отладкой. Я надеюсь, что достаточно полно предоставила на Ваш суд все, чем располагаю... Надеюсь на помощь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2001, 23:55 |
|
||
|
Все началось неожиданно...
|
|||
|---|---|---|---|
|
#18+
Может это поможет. На самом деле прочитать сообщение об ошибке возможно. Щелкнуть правой кнопкой по Job и выбрать View Job History... Там то и можно прочитать историю всех выполнений. moth@mail.primorye.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2001, 06:20 |
|
||
|
Все началось неожиданно...
|
|||
|---|---|---|---|
|
#18+
Уважаемый Moth! Спасибо за подсказку! Как я могла забыть про это? Там ведь есть даже чек-боксик для деталировки job'a, если он состоит из нескольких шагов. Видать я "слаба" в критических ситуациях... А сообщение следующее: не описана переменная "DTSTaskExecResult_Success" !?!?!? А раньше ведь работала!!! Я скопировала целый скрипт из DTS! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2001, 10:37 |
|
||
|
Все началось неожиданно...
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2001, 13:47 |
|
||
|
Все началось неожиданно...
|
|||
|---|---|---|---|
|
#18+
Если Вы не увеличили максимальны размер строки в таблице msdb..sysjobhistory, Вы можете столкнутся с ограничением, которое отслеживает, что бы максимальное количество записей журнала истории для всех заданий не превышало одной тысячей. Причём каждое отдельное задание не сможет занимать более ста записей. С эти могут быть связаны некоторые проблемы выполнения заданий. На всякий случай, прочтите внимательно указанную ниже статью и проанализируйте описанные в ней возможные проблемы и пути их устранения: Автоматизация в SQL Server 7.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2001, 10:47 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3579&tid=1826879]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
21ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 343ms |

| 0 / 0 |
