Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Импорт таблиц из одной БД в другую. Help!  [new]
GrayMagellan
Member

Откуда:
Сообщений: 188
Здравствуйте, все!

Посоветуйте, как нам быть.

Итак, исходное положение:

Исходная БД:

Работает на MS SQL 2000 SP3, аппаратно 2-х процессорный Xeon 2.4 ГГц (HT отключена), 4 Гб оперативки, рэйд пятого уровня на рэйд-контроллере LSI, гигабитная сеть. Сервер предназначен для размещения основной (рабочей) БД.
Размер основной БД составляет 8,6 Гб, работают с ней 10 человек. Они работают с базой в полном объеме (чтение, запись, формирование отчетов)

БД получатель:

Работает на MS SQL 2000 SP3, аппаратно обычная рабочая станция на P4-2.4 ГГц, 1 Гб оперативки, 80 Гб IDE диск, на котором сидит операционка, SQL и все базы, 100 мбит сеть. На этом сервере стоит копия основной БД. Эта копия предназначена для предоставления информации в интернет. Правда, эта БД не 100% идентична рабочей БД по структуре таблиц, т.к. приходится учитывать специализацию БД (рабочая и для интернета). БД работает только на чтение, т.е. пользователи из интернета могут только просматривать содержимое базы через web-интерфейс.

Цель:

Обеспечить передачу информации из основной БД в интернетовскую тем чаще, чем это возможно (сейчас это делается раз в сутки ночью)

Текущий механизм, применяемый для этого:

Используется DTS MS SQL, посредством которого данные из нескольких основных таблиц рабочей БД импортируются по расписанию в таблицы интернетовской БД.

Немного философии:

Нас то, что интернетовская БД крутится на машине, на порядок хуже той, на которой крутится рабочая, не смущает. Количество пользователей, работающих в базе со стороны интернета, мало, да и подключаются они редко. Поэтому на этом сервере нет рэйд массивов, кучи процессоров и моря оперативки. По крайней мере, пока IE у клиента не ругается из-за тайм аута при получении данных.

Проблема

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

Меры, предпринятые для выяснения ситуации

Путем общесистемного мониторинга мы выяснили, что такие операции, как очистка таблиц, проходят мгновенно (за 1 сек.). Во время выполнения DTS пакета первая таблица, содержащая 700 тыс. записей, копируется за 9 минут, а вторая, содержащая 7,8 млн. записей, копируется за 5 часов 30 минут, что составляет 98% от общего времени выполнения пакета. На изучении этого феномена я и заострил свое внимание. Более детальное расследование показало вот что: сначала SQL-приемник быстро (в течение 8-10 минут) по сети скачивает со скоростью 8-9 мбайт/сек (практически предел 100 мбит сети) скачивает всю эту таблицу, затем сетевой трафик практически полностью прекращается (падает до уровня 0,5 - 1,5 Кб/сек), и начинается длительная работа с винтом. Для выяснения ситуации был запущен FileMon, фрагмент лога которого я привожу:

135 17:47:24 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1234173952 Length: 65536
136 17:47:24 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: -1812856832 Length: 65536
137 17:47:24 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1234108416 Length: 65536
138 17:47:24 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: -1812791296 Length: 65536
139 17:47:24 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1234042880 Length: 65536
140 17:47:24 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: -1764950016 Length: 65536
141 17:47:24 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1233977344 Length: 65536

Обратите внимание на следующее:
1) SQL работает с блоками данных по 64 Кб (т.е. экстентами).
2) Операции чтения перемежаются с операциями записи в пропорции 50 на 50.
3) Разные offset от начала файла.

Все эти пункты в совокупности приводят к огромным тормозам.

Вот такие операции SQL сервер производит с базой tempdb в течение 5,5 часов, т.е. 98% времени выполнения пакета. Накенц, пройдя через это, в конце очень быстро (за 8-10 минут) это хозяйство переливается в файл БД и на этом выполнение DTS пакета заканчивается.

На IDE диске такая работа с tempdb происходила со скоростью 3 мбайт/сек. Попытка вылечить это аппаратным путем была такая. Взяли сервер, аппаратно превосходящий сервер рабочей БД, на него поставили операционку, SQL, и повторили процедуру. При этом базу tempdb перенесли на рэйд массив, но скорость поднялась только до 7-9 мбайт/сек и время сократилось до 3-х часов, но это маленькое преимущество. Мы думаем, что с скорость роста времени выполнения нелинейно возрастает с ростом количества записей в таблице (т.к. было 6 млн. записей и 3 часа, сейчас их 7,8 млн. и 6 часов). Так что рэйд массив и супер-сервер нас не сильно спас.

Вопросы у нас к SQL-сообществу такие:
1) Как избежать при текущем методе передачи информации закачку информации в tempdb?
2) Как нам организовать передачу информации с одного сервера на другой, если при использовании DTS пройти мимо tempdb невозможно?
3) Почему работа с файлом tempdb происходит таким странным образом и что он может делать в этот момент?

P.S. Помимо длительного времени работы, это требует больших затрат дискового пространства. Размер tempdb после выполнения процедуры составляет 2,8 Гб, а размер журнала транзакций базы составил 22 Гб, так что его еще надо принудительно каждый раз очищать.
12 июл 04, 16:37    [800675]     Ответить | Цитировать Сообщить модератору
 Re: Импорт таблиц из одной БД в другую. Help!  [new]
_bob
Member

Откуда: Москва
Сообщений: 1654
я бы начал с того, что попробовал бы генерить internet-базу на мощном сервере, а потом просто копировал бы её на internet-сервер
в случае неудачи, я бы поэкспериментировал с копией internet-базы на мощном сервере, которая поддерживалась бы в актуальном сост. + односторонняя репликация её на internet-базу, которая производилась бы ночью
12 июл 04, 17:02    [800778]     Ответить | Цитировать Сообщить модератору
 Re: Импорт таблиц из одной БД в другую. Help!  [new]
Latuk
Member

Откуда: N 54°38', E 037°35'
Сообщений: 7312
1)Поставить отдельный диск,
чтобы развести систему и БД по разным физ.устройствам
поскольку при установке некоторых компанентов
винда отключает кеширование диска
(всех логических дисков на этом устройстве) на котором стоит
2)Почему бы не выкинуть перелив критичной таблицы
из DTS-а
и не сделать его вручную
SQL скриптом закачивая данные через линкованный сервер.
3)переносить исходную базу на инет сервер
через бакап/ресторе и потом уже перекачивать данные
между базами внутри одного сервера.
4)Так ли обязятельно каждый раз копировать все данные?
диф бакап поможет значительно ускорить 3-й вариант.
12 июл 04, 17:24    [800874]     Ответить | Цитировать Сообщить модератору
 Re: Импорт таблиц из одной БД в другую. Help!  [new]
Latuk
Member

Откуда: N 54°38', E 037°35'
Сообщений: 7312
Еще если отличия между базами не велеки
вместо того чтобы копировать данные,
можно написать скрипт,
который будет приводить основную базу к виду
инет-базы.
12 июл 04, 17:27    [800888]     Ответить | Цитировать Сообщить модератору
 Re: Импорт таблиц из одной БД в другую. Help!  [new]
GrayMagellan
Member

Откуда:
Сообщений: 188
Спасибо за информацию, но, увы, мы такие варианты тоже обдумывали, и, как мне кажется, они не очень технически красивы :(, и не приведут к кардинальному исправлению ситуации. Что касается предложений расположения файлов БД на разных дисках, то они бессмысленны, поскольку из лога FileMon (он на 98% состоит из записей такого вида) видно, что SQL.exe в течение 5,5 часов работает только с одним файлом - G:\Data\tempdb.mdf. А это есть файл БД tempdb. Как вы предлагаете разделить этот файл по разным дискам? И что это даст, если диск там работает так - read-write-read-write-read-write. Да еще блоки данных считываются из разных мест файла и пишутся в разные места файла в каждом запросе к диску (read или write). Тут даже рэйд контроллер не помогает. Он же не может закачать весь файл БД tempdb (2,8 Гб) в свой кэш (64 Мб SDRAM локальной памяти рэйд контроллера). Через довольно короткий промежуток времени (я думаю, через 1-2 сек.) он просто вынужден передавать такие дебильные запросы чтения-записи напрямую дискам, отключая свои механизмы оптимизации и кеширования запросов к дисковой подсистеме. Таким образом, я думаю, что все упирается при таких методах работы с дисками к скорости перемещения головок по поверхности диска.

Вопрос вот такой у нас возник:

На исходных таблицах есть индексы. Возможна ли такая ситуация, что закачав исходную таблицу в "сыром" виде в tempdb, SQL начинает прямо там создавать индексы на нее (2,8 Гб - это примерно размер самой таблицы, содержащей 7,8 млн. записей). Кто-нибудь что-нибудь знает про это?

P.S. Если алгоритмически ничего сделать нельзя, то нам остается только купить два винта SCSI, имеющих минимальное время доступа головок в мире, и поставить их в рэйд 0, для того, чтобы обеспечить максимально возможное быстродействие базы tempdb. Это, в общем-то, и соответствует рекомендациям MS относительно оптимизации быстродействия tempdb. Но от такого решения мне (как сетевому администратору) просто выть хочется. Потому как я смотрю на работу SQL с tempdb.mdf, и уже плачу. Мне хочется это как-то исправить.
12 июл 04, 18:24    [801115]     Ответить | Цитировать Сообщить модератору
 Re: Импорт таблиц из одной БД в другую. Help!  [new]
_bob
Member

Откуда: Москва
Сообщений: 1654
ну, если перенос всей базы (как у Вас) красивее переноса изменений (как предложено мною и Latuk'ом), тогда покупайте самые быстрые в мире винты и у Вас все будет копироваться не 5 часов, а 4 часа 50 минут
12 июл 04, 18:34    [801146]     Ответить | Цитировать Сообщить модератору
 Re: Импорт таблиц из одной БД в другую. Help!  [new]
Glory
Member

Откуда:
Сообщений: 104764
Более детальное расследование показало вот что: сначала SQL-приемник быстро (в течение 8-10 минут) по сети скачивает со скоростью 8-9 мбайт/сек (практически предел 100 мбит сети) скачивает всю эту таблицу, затем сетевой трафик практически полностью прекращается (падает до уровня 0,5 - 1,5 Кб/сек), и начинается длительная работа с винтом. Для выяснения ситуации был запущен FileMon, фрагмент лога которого я привожу:
Вместо FileMon воспользуйтесь лучше Performance Monitor, в котором есть счетчики и для дисковой активности и для памяти и специальные счетчики производительности самого SQLServer-а
12 июл 04, 18:58    [801223]     Ответить | Цитировать Сообщить модератору
 Re: Импорт таблиц из одной БД в другую. Help!  [new]
GrayMagellan
Member

Откуда:
Сообщений: 188
_bob
ну, если перенос всей базы (как у Вас) красивее переноса изменений (как предложено мною и Latuk'ом), тогда покупайте самые быстрые в мире винты и у Вас все будет копироваться не 5 часов, а 4 часа 50 минут


Да мне тоже эта мысль душу греет, только мы не знаем, как это сделать. Наш программист говорит, что для этого понадобится менять структуру таблиц рабочей базы, что довольно затруднительно, т.к. под текущую рабочую базу написано сетевое приложение, и в случае изменения структуры таблиц нам придется переписывать код программы :(.

Пока мы не трогаем интернетовский сервер. Для разборок с ситуацией мы взяли сервер, более мощный, чем сервер рабочей базы, и подняли на нем копию интернетовской базы, и все эксперименты проводятся над ним. Пока, как я уже выше говорил, перенос базы tempdb с IDE диска на рэйд массив 5-го уровня дал уменьшение времени с 5,5 часов до 3. Но этого мало, потому что некоторые пользователи начинают работать с базой уже в 4 часа утра по московскому времени, поэтому выигрыш, который мы получаем, переводя базу с рабочей станции стоимостью 600$ на сервер стоимостью 3500$, составляет всего 1 час (т.к. таблицы начинают импортироваться с 00:00 до 3:20 - ~3 часа). Фактически, мы ничего не выигрываем, потому что с ростом базы этот час "съестся" уже через месяц-полтора.

Нас также интересуют параметры DTS пакета на закладке Advanced. В частности, там есть интересная закладочка "Use Transactions". Позавчера, при замерах времени выполнения DTS пакета, все галочки на закладке Advanced были сняты и мы получили время, равное 3 часа 13 минут. Вчера мы установили галочку "Use Transactions" и режим изоляции транзакций "Read Committed". Получили результат 3 часа 21 минута. Таким разбросом параметров можно пренебречь и считать, что режим "Use Transactions" ни на что не влияет. Отсюда вопрос:

Как работает перекачка данных из одной таблицы в другую, если режим "Use Transactions" выключен, и как она работает, если включен?

Мы вот думаем, может быть, столь тщательная перетряска базы tempdb, которую SQL ей устраивает, связана с тем, что на исходных таблицах есть индексы. Сейчас на рабочем сервере подымем копию рабочей базы, удалим с таблиц индексы, перенастроим DTS и еще раз проведем импорт данных. О результатах я вам сообщу.
13 июл 04, 09:28    [801728]     Ответить | Цитировать Сообщить модератору
 Re: Импорт таблиц из одной БД в другую. Help!  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23903
А что если не заниматься вылизыванием настроек железа (хотя это никому и не помешало ещё), а всё-таки посмотреть, как тут уже предлагалось, в сторону транзакционной репликации - и данные почти в реальном масштабе времени актуальны и трафики минимальны?
13 июл 04, 09:45    [801766]     Ответить | Цитировать Сообщить модератору
 Re: Импорт таблиц из одной БД в другую. Help!  [new]
GrayMagellan
Member

Откуда:
Сообщений: 188
Glory
Более детальное расследование показало вот что: сначала SQL-приемник быстро (в течение 8-10 минут) по сети скачивает со скоростью 8-9 мбайт/сек (практически предел 100 мбит сети) скачивает всю эту таблицу, затем сетевой трафик практически полностью прекращается (падает до уровня 0,5 - 1,5 Кб/сек), и начинается длительная работа с винтом. Для выяснения ситуации был запущен FileMon, фрагмент лога которого я привожу:
Вместо FileMon воспользуйтесь лучше Performance Monitor, в котором есть счетчики и для дисковой активности и для памяти и специальные счетчики производительности самого SQLServer-а


Уважаемый Glory! Знаю о том, что вы являетесь очень уважаемым человеком на этом форуме, но позвольте с вами не согласиться. Конечно, я пользуюсь Performance Monitor (PM), и причем именно для отслеживания счетчиков SQL сервера, т.к. средства мониторинга системы, которыми я пользуюсь (а это TaskInfo 2003 v5.0.1.104 (TI) для общесистемного мониторинга сервера различных подсистем сервера и FileMon для "залезания в кишки" процессов ввода-вывода, происходящих на сервере. И тут мне PM не помошник :). Разве покажет он мне тот лог, который я приводил в начале? Нет! Я должен буду долго интерпретировать результаты дисковых счетчиков из PM, а тут я посмотрел на лог, и сразу понял, как работает дисковая подсистема.
Но, конечно, я пользуюсь PM, в частности, для удаленного мониторинга сервера, так как TI, к сожалению, работает только локально. А счетчики SQL в PM я обязательно проверю, спасибо Вам за совет.
13 июл 04, 09:46    [801770]     Ответить | Цитировать Сообщить модератору
 Re: Импорт таблиц из одной БД в другую. Help!  [new]
GrayMagellan
Member

Откуда:
Сообщений: 188
tpg
А что если не заниматься вылизыванием настроек железа (хотя это никому и не помешало ещё), а всё-таки посмотреть, как тут уже предлагалось, в сторону транзакционной репликации - и данные почти в реальном масштабе времени актуальны и трафики минимальны?


Ок! Мои представления в этой сфере таковы (так мне сказал наш программист):

Для репликации требуется одинаковая структура БД на обоих серверах, это раз, а потом, наш программист сказал, что для репликации требуется введение дополнительных полей uniqueidentifier в структуру таблиц рабочей БД. Хотя, конечно, если других вариантов не будет, может быть, это будет единственный вариант.
13 июл 04, 09:52    [801788]     Ответить | Цитировать Сообщить модератору
 Re: Импорт таблиц из одной БД в другую. Help!  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23903
GrayMagellan
Ок! Мои представления в этой сфере таковы (так мне сказал наш программист):

Для репликации требуется одинаковая структура БД на обоих серверах, это раз, а потом, наш программист сказал, что для репликации требуется введение дополнительных полей uniqueidentifier в структуру таблиц рабочей БД. Хотя, конечно, если других вариантов не будет, может быть, это будет единственный вариант.

А Вы не слушайте программиста, а сами почитайте про репликацию - структура баз совсем не обязательно должна быть одинаковой и определяется тем, как будут настроены статьи публикации (только необходимые таблицы и колонки из них).
Потом, я предложил транзакционную репликацию, а там вовсе не обязательно использование uniqueidentifier в структуру таблиц рабочей БД.
13 июл 04, 10:00    [801807]     Ответить | Цитировать Сообщить модератору
 Re: Импорт таблиц из одной БД в другую. Help!  [new]
GrayMagellan
Member

Откуда:
Сообщений: 188
tpg
GrayMagellan
Ок! Мои представления в этой сфере таковы (так мне сказал наш программист):

Для репликации требуется одинаковая структура БД на обоих серверах, это раз, а потом, наш программист сказал, что для репликации требуется введение дополнительных полей uniqueidentifier в структуру таблиц рабочей БД. Хотя, конечно, если других вариантов не будет, может быть, это будет единственный вариант.

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


Т.е. вы предлагаете следующую модель:

Клиент начинает транзакцию на рабочем сервере, рабочий сервер начинает транзакцию на интернетовском сервере, он ее выполняет, подтверждает выполнение транзакции основному, рабочий тоже ее выполняет (или они выполняют ее одновременно, но, конечно, рабочий саму транзакцию выполнит быстрее интернетовского и будет ждать подтверждения от интернетовского) и затем подтверждает выполнение транзакции клиенту. Я правильно Вас понял?
13 июл 04, 10:08    [801828]     Ответить | Цитировать Сообщить модератору
 Re: Импорт таблиц из одной БД в другую. Help!  [new]
GrayMagellan
Member

Откуда:
Сообщений: 188
Об этом я читал в руководстве администратора MS SQL. Но практически мы это не пробовали, потому что теоретически тут могут возникнуть тормоза из-за медленного интернетовского сервера, который заставит ждать рабочий сервер, и понизит быстродействие основной БД. Т.е. интернетовский сервер может стать узким местом между рабочей базой и клиентом. Может возникнуть такая ситуация или нет?
13 июл 04, 10:12    [801841]     Ответить | Цитировать Сообщить модератору
 Re: Импорт таблиц из одной БД в другую. Help!  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23903
GrayMagellan
Но практически мы это не пробовали, потому что теоретически тут могут возникнуть тормоза из-за медленного интернетовского сервера, который заставит ждать рабочий сервер, и понизит быстродействие основной БД.

Да причем здесь медленный интернетовский сервер? Распространение данных идет соответствующими агентами из служебной базы distribution, а её можно вообще поставить на третью машину.
13 июл 04, 10:17    [801857]     Ответить | Цитировать Сообщить модератору
 Re: Импорт таблиц из одной БД в другую. Help!  [new]
Glory
Member

Откуда:
Сообщений: 104764
и FileMon для "залезания в кишки" процессов ввода-вывода, происходящих на сервере. И тут мне PM не помошник :). Разве покажет он мне тот лог, который я приводил в начале? Нет! Я должен буду долго интерпретировать результаты дисковых счетчиков из PM, а тут я посмотрел на лог, и сразу понял, как работает дисковая подсистема.
Вы из этого лога видете какова очередь к диску ? какова скрость передачи/ чтения данных ? частота приращения журнала транзакций и tempdb ? количество блокировок ? процент попадания в кэш ? загрузку процессора ?

Почему вы решили что именно действия SQL с базой tempdb являются узким местом ? А не скажем пропускная способность вашей дисковой системы ? Вы пробовали просто копировать большой файл из одной директории машины в другую ?
13 июл 04, 10:20    [801869]     Ответить | Цитировать Сообщить модератору
 Re: Импорт таблиц из одной БД в другую. Help!  [new]
GrayMagellan
Member

Откуда:
Сообщений: 188
Glory
и FileMon для "залезания в кишки" процессов ввода-вывода, происходящих на сервере. И тут мне PM не помошник :). Разве покажет он мне тот лог, который я приводил в начале? Нет! Я должен буду долго интерпретировать результаты дисковых счетчиков из PM, а тут я посмотрел на лог, и сразу понял, как работает дисковая подсистема.
Вы из этого лога видете какова очередь к диску ? какова скрость передачи/ чтения данных ? частота приращения журнала транзакций и tempdb ? количество блокировок ? процент попадания в кэш ? загрузку процессора ?

Почему вы решили что именно действия SQL с базой tempdb являются узким местом ? А не скажем пропускная способность вашей дисковой системы ? Вы пробовали просто копировать большой файл из одной директории машины в другую ?


Почему я решил? Да вот почему!

Вот закачка данных по сети со скоростью 9 мбайт/сек, загрузка процессора 50%, очередь к диску 0 (все взято из TI), а сам лог, ессно, FileMon (интервал времени наблюдения 1 сек.):


85 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1137442816 Length: 65536
86 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1137508352 Length: 65536
87 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1137573888 Length: 65536
88 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1137639424 Length: 65536
89 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1137704960 Length: 65536
90 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1137770496 Length: 65536
91 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1137836032 Length: 65536
92 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1137901568 Length: 65536
93 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1137967104 Length: 65536
94 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1138032640 Length: 65536
95 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1138098176 Length: 65536
96 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1138163712 Length: 65536
97 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1138229248 Length: 65536
98 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1138294784 Length: 65536
99 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1138360320 Length: 65536
100 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1138425856 Length: 65536
101 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1138491392 Length: 65536
102 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1138556928 Length: 65536
103 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1138622464 Length: 65536
104 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1138688000 Length: 65536
105 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1138753536 Length: 65536
106 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1138819072 Length: 65536
107 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1138884608 Length: 65536
108 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1138950144 Length: 65536
109 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1139015680 Length: 65536
110 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1139081216 Length: 65536
111 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1139146752 Length: 65536
112 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1139212288 Length: 65536
113 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1139277824 Length: 65536
114 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1139343360 Length: 65536
115 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1139408896 Length: 65536
116 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1139474432 Length: 65536
117 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1139539968 Length: 65536
118 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1139605504 Length: 65536
119 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1139671040 Length: 65536
120 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1139736576 Length: 65536
121 10:15:08 svchost.exe IRP_MJ_CREATE Q: DASD SUCCESS Attributes: N Options: OpenIf
122 10:15:08 svchost.exe IOCTL: 0x1401D0 Q: DASD SUCCESS
123 10:15:08 svchost.exe IRP_MJ_CLEANUP Q: DASD SUCCESS
124 10:15:08 svchost.exe IRP_MJ_CLOSE Q: DASD SUCCESS
125 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1139802112 Length: 65536
126 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1139867648 Length: 65536
127 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1139933184 Length: 65536
128 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1139998720 Length: 65536
129 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1140064256 Length: 65536
130 10:15:08 System IRP_MJ_WRITE* D:\Program Files\Common Files\System\Ole DB SUCCESS Offset: 0 Length: 4096
131 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1140129792 Length: 65536
132 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1140195328 Length: 65536
133 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1140260864 Length: 65536
134 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1140326400 Length: 65536
135 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1140391936 Length: 65536
136 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1140457472 Length: 65536
137 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1140523008 Length: 65536
138 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1140588544 Length: 65536
139 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1140654080 Length: 65536
140 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1140719616 Length: 65536
141 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1140785152 Length: 65536
142 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1140850688 Length: 65536
143 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1140916224 Length: 65536
144 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1140981760 Length: 65536
145 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1141047296 Length: 65536
146 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1141112832 Length: 65536
147 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1141178368 Length: 65536
148 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1141243904 Length: 65536
149 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1141309440 Length: 65536
150 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1141374976 Length: 65536
151 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1141440512 Length: 65536
152 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1141506048 Length: 65536
153 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1141571584 Length: 65536
154 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1141637120 Length: 65536
155 10:15:08 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1141702656 Length: 65536

А вот этап сортировки в базе tempdb, который начинается сразу после этапа закачки и длится очень долго. Процессор 3%, скорость рэйда 7 мбайт/сек (а наш рэйд реально может выдать 80 мб/сек по чтению или записи, я сам тестировал его), сеть стоит, очередь не посмотрел, извините (мне по непрерывному горению индикаторов винтов в корзине и так видно, что они работают на 100%), интервал наблюдения 1 сек.:

604 10:17:25 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1299972096 Length: 65536
605 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1325858816 Length: 65536
606 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1172635648 Length: 65536
607 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1325924352 Length: 65536
608 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1172701184 Length: 65536
609 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1325989888 Length: 65536
610 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1174339584 Length: 65536
611 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1305346048 Length: 65536
612 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1174405120 Length: 65536
613 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1305411584 Length: 65536
614 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1174470656 Length: 65536
615 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1305477120 Length: 65536
616 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1174536192 Length: 65536
617 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1305542656 Length: 65536
618 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1174601728 Length: 65536
619 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1305608192 Length: 65536
620 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1174667264 Length: 65536
621 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1327366144 Length: 65536
622 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1174732800 Length: 65536
623 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1321205760 Length: 65536
624 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1174798336 Length: 65536
625 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1321271296 Length: 65536
626 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1174863872 Length: 65536
627 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1321336832 Length: 65536
628 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1174929408 Length: 65536
629 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1310457856 Length: 65536
630 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1174994944 Length: 65536
631 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1310523392 Length: 65536
632 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1175060480 Length: 65536
633 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1310916608 Length: 65536
634 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1175126016 Length: 65536
635 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1310982144 Length: 65536
636 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1175191552 Length: 65536
637 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1311047680 Length: 65536
638 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1175257088 Length: 65536
639 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1311244288 Length: 65536
640 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1175322624 Length: 65536
641 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1311309824 Length: 24576
642 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1176305664 Length: 65536
643 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1176371200 Length: 49152
644 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1081892864 Length: 40960
645 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1088856064 Length: 24576
646 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1094598656 Length: 49152
647 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1311334400 Length: 40960
648 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1094647808 Length: 65536
649 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1133248512 Length: 65536
650 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1176420352 Length: 65536
651 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1133314048 Length: 65536
652 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1176485888 Length: 65536
653 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1133379584 Length: 65536
654 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1176551424 Length: 65536
655 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1133445120 Length: 65536
656 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1176616960 Length: 65536
657 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1088880640 Length: 65536
658 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1176682496 Length: 65536
659 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1288110080 Length: 65536
660 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1176748032 Length: 65536
661 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1288175616 Length: 65536
662 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1176813568 Length: 65536
663 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1288241152 Length: 65536
664 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1176879104 Length: 65536
665 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1288306688 Length: 65536
666 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1176944640 Length: 65536
667 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1177010176 Length: 16384
668 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1093337088 Length: 65536
669 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1177616384 Length: 65536
670 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1093402624 Length: 65536
671 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1177681920 Length: 65536
672 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1093468160 Length: 65536
673 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1177747456 Length: 65536
674 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1093533696 Length: 65536
675 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1177812992 Length: 65536
676 10:17:26 System IRP_MJ_CLOSE \Server08\q\Server04\¦рърўър фрээvї т срчє tempdb - ¤Єря 1.LOG SUCCESS
677 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1093599232 Length: 65536
678 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1179058176 Length: 65536
679 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1133903872 Length: 65536
680 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1179123712 Length: 65536
681 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1059258368 Length: 65536
682 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1179189248 Length: 65536
683 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1345323008 Length: 65536
684 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1179254784 Length: 65536
685 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1345388544 Length: 65536
686 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1179582464 Length: 65536
687 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1345454080 Length: 65536
688 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1179648000 Length: 65536
689 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1345519616 Length: 65536
690 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1179713536 Length: 65536
691 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1059323904 Length: 65536
692 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1179779072 Length: 65536
693 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1059389440 Length: 65536
694 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1181417472 Length: 65536
695 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1059454976 Length: 65536
696 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1181483008 Length: 65536
697 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1137836032 Length: 65536
698 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1053032448 Length: 65536
699 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1289420800 Length: 65536
700 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1053097984 Length: 65536
701 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1289486336 Length: 65536
702 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1053163520 Length: 65536
703 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1289551872 Length: 65536
704 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1053229056 Length: 65536
705 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1289617408 Length: 65536
706 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1182597120 Length: 65536
707 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1094909952 Length: 65536
708 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1182662656 Length: 65536
709 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1094975488 Length: 65536
710 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1182728192 Length: 65536
711 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1287716864 Length: 65536
712 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1182793728 Length: 65536
713 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1288372224 Length: 65536
714 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1182859264 Length: 65536
715 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1288437760 Length: 65536
716 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1182924800 Length: 65536
717 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1288503296 Length: 65536
718 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1184235520 Length: 65536
719 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1289682944 Length: 65536
720 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1050935296 Length: 65536
721 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1289748480 Length: 65536
722 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1051000832 Length: 65536
723 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1289814016 Length: 65536
724 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1051066368 Length: 65536
725 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1289879552 Length: 65536
726 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1051131904 Length: 65536
727 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1289945088 Length: 65536
728 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1051197440 Length: 65536
729 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1290010624 Length: 65536
730 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1051262976 Length: 65536
731 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1290076160 Length: 65536
732 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1184563200 Length: 65536
733 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1290141696 Length: 65536
734 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1184628736 Length: 65536
735 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1290207232 Length: 65536
736 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1184694272 Length: 65536
737 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1290272768 Length: 65536
738 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1184759808 Length: 65536
739 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1129971712 Length: 65536
740 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1184825344 Length: 65536
741 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1130037248 Length: 65536
742 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1184890880 Length: 65536
743 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1130102784 Length: 65536
744 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1184956416 Length: 65536
745 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1291911168 Length: 65536
746 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1185021952 Length: 65536
747 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1291976704 Length: 65536
748 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1185087488 Length: 65536
749 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1311965184 Length: 65536
750 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1312030720 Length: 65536
751 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1185153024 Length: 65536
752 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1312096256 Length: 65536
753 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1185218560 Length: 65536
754 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1312161792 Length: 65536
755 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1185284096 Length: 65536
756 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1312227328 Length: 65536
757 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1185349632 Length: 65536
758 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1292042240 Length: 65536
759 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1185415168 Length: 65536
760 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1185480704 Length: 65536
761 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1281556480 Length: 65536
762 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1185546240 Length: 65536
763 10:17:26 svchost.exe IRP_MJ_CREATE Q: DASD SUCCESS Attributes: N Options: OpenIf
764 10:17:26 svchost.exe IOCTL: 0x1401D0 Q: DASD SUCCESS
765 10:17:26 svchost.exe IRP_MJ_CLEANUP Q: DASD SUCCESS
766 10:17:26 svchost.exe IRP_MJ_CLOSE Q: DASD SUCCESS
767 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1281622016 Length: 65536
768 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1185611776 Length: 65536
769 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1281687552 Length: 65536
770 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1185677312 Length: 65536
771 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1281753088 Length: 65536
772 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1185742848 Length: 65536
773 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1318060032 Length: 65536
774 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1318125568 Length: 65536
775 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1185808384 Length: 65536
776 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1318191104 Length: 65536
777 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1185873920 Length: 65536
778 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1312620544 Length: 65536
779 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1185939456 Length: 65536
780 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1312686080 Length: 65536
781 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1192820736 Length: 65536
782 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1090387968 Length: 65536
783 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1192886272 Length: 65536
784 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1189543936 Length: 65536
785 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1090453504 Length: 65536
786 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1190199296 Length: 65536
787 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1090519040 Length: 65536
788 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1190264832 Length: 65536
789 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1090584576 Length: 65536
790 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1190330368 Length: 65536
791 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1090650112 Length: 65536
792 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1186988032 Length: 65536
793 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1313013760 Length: 65536
794 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1313079296 Length: 65536
795 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1187053568 Length: 65536
796 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1313144832 Length: 65536
797 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1187119104 Length: 65536
798 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1313210368 Length: 65536
799 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1187184640 Length: 65536
800 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1313275904 Length: 65536
801 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1187250176 Length: 65536
802 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1319239680 Length: 65536
803 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1187315712 Length: 65536
804 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1313472512 Length: 65536
805 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1187381248 Length: 65536
806 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1313538048 Length: 65536
807 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1187446784 Length: 65536
808 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1313603584 Length: 65536
809 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1187512320 Length: 65536
810 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1313669120 Length: 65536
811 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1187577856 Length: 65536
812 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1137901568 Length: 65536
813 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1186201600 Length: 65536
814 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1137967104 Length: 65536
815 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1186267136 Length: 65536
816 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1138032640 Length: 65536
817 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1186332672 Length: 65536
818 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1138098176 Length: 65536
819 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1186398208 Length: 65536
820 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1138163712 Length: 65536
821 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1186463744 Length: 65536
822 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1088946176 Length: 65536
823 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1186529280 Length: 65536
824 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1089011712 Length: 65536
825 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1186594816 Length: 65536
826 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1141178368 Length: 65536
827 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1047986176 Length: 65536
828 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1141243904 Length: 65536
829 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1048051712 Length: 65536
830 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1141309440 Length: 65536
831 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1048117248 Length: 65536
832 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1090715648 Length: 65536
833 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1048182784 Length: 65536
834 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1284833280 Length: 65536
835 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1048248320 Length: 65536
836 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1284898816 Length: 65536
837 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1048313856 Length: 65536
838 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1091436544 Length: 65536
839 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1048969216 Length: 65536
840 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1091502080 Length: 65536
841 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1049034752 Length: 65536
842 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1091567616 Length: 65536
843 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1049100288 Length: 65536
844 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1091633152 Length: 65536
845 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1049165824 Length: 65536
846 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1091698688 Length: 65536
847 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1049231360 Length: 65536
848 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1091764224 Length: 65536
849 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1049296896 Length: 65536
850 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1091829760 Length: 65536
851 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1186922496 Length: 65536
852 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1091895296 Length: 65536
853 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1046937600 Length: 65536
854 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1091960832 Length: 65536
855 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1047003136 Length: 65536
856 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1092026368 Length: 65536
857 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1047068672 Length: 65536
858 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1092091904 Length: 65536
859 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1047134208 Length: 65536
860 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1092157440 Length: 65536
861 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1047199744 Length: 65536
862 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1086193664 Length: 65536
863 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1047265280 Length: 65536
864 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1086259200 Length: 65536
865 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1189216256 Length: 65536
866 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1086324736 Length: 65536
867 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1189281792 Length: 65536
868 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1086390272 Length: 65536
869 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1189347328 Length: 65536
870 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1141374976 Length: 65536
871 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1189412864 Length: 65536
872 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1189478400 Length: 65536
873 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1141440512 Length: 65536
874 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1190395904 Length: 65536
875 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1141506048 Length: 65536
876 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1190461440 Length: 65536
877 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1141571584 Length: 65536
878 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1190526976 Length: 65536
879 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1141637120 Length: 65536
880 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1190592512 Length: 65536
881 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1141702656 Length: 65536
882 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1190658048 Length: 65536
883 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1088356352 Length: 65536
884 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1190723584 Length: 65536
885 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1278410752 Length: 65536
886 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1190789120 Length: 65536
887 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1278476288 Length: 65536
888 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1190854656 Length: 65536
889 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1278541824 Length: 65536
890 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1045364736 Length: 65536
891 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1146814464 Length: 65536
892 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1146880000 Length: 65536
893 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1045430272 Length: 65536
894 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1146945536 Length: 65536
895 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1045495808 Length: 65536
896 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1147011072 Length: 65536
897 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1045561344 Length: 65536
898 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1147469824 Length: 65536
899 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1045626880 Length: 65536
900 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1278607360 Length: 65536
901 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1046282240 Length: 65536
902 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1046347776 Length: 65536
903 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1142161408 Length: 65536
904 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1046413312 Length: 65536
905 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1142226944 Length: 65536
906 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1193279488 Length: 65536
907 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1142292480 Length: 65536
908 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1193345024 Length: 65536
909 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1142358016 Length: 65536
910 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1193410560 Length: 65536
911 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1114963968 Length: 65536
912 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1193476096 Length: 65536
913 10:17:26 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1115029504 Length: 65536
914 10:17:26 sqlservr.exe IRP_MJ_WRITE G:\Data\tempdb.mdf SUCCESS Offset: 1193541632 Length: 65536
915 10:17:27 sqlservr.exe IRP_MJ_READ G:\Data\tempdb.mdf SUCCESS Offset: 1115095040 Length: 65536


Много ли Вы увидели здесь процессов, выполняющих операции ввода-вывода к дисковой подсистеме? Немного! Здесь практически только один процесс - SQL. Вот отсюда и видно, как работает дисковая подсиситема. Фрагмент последнего этапа - этапа переливки из tempdb в файл mdf интернетовской БД, я здесь приводить не буду из-за места, а также потому, что он занимает мало времени и проходит с высокой скоростью работы дисковой подсистемы.

А на экране в окне выполнения DTS пакета я вижу только одну строчку:

Transform Data Task (708000), на которой застыл курсор выполнения DTS пакета. Вот это я и назвал "залезть в кишки" системы.

Glory, я прошу прощения, мне не хочется сейчас спорить с Вами о средствах мониторинга. У каждого они свои. К тому же я не отрицаю необходимость использования PM и счетчиков, о которых Вы упоминали, и мы его используем.

Не обижайтесь на меня.
13 июл 04, 10:54    [802025]     Ответить | Цитировать Сообщить модератору
 Re: Импорт таблиц из одной БД в другую. Help!  [new]
GrayMagellan
Member

Откуда:
Сообщений: 188
Могу сообщить результаты эксперимента, проведенного после удаления индексов с таблиц, подлежащих копированию. Ничего не изменилось. Все работает так же и по-прежнему медленно. Поэтому приступаем к изучению метода транзакционной репликации, как предложил tpg.
13 июл 04, 11:16    [802123]     Ответить | Цитировать Сообщить модератору
 Re: Импорт таблиц из одной БД в другую. Help!  [new]
GrayMagellan
Member

Откуда:
Сообщений: 188
Прошу прощения, но я ошибся. Перед проведением эксперимента я не удалил в таблице-получателе один индекс (первичный ключ), поэтому результаты эксперимента не менялись. Наш программист удалил первичный ключ, и обе таблицы наконец остались без индексов. Запустив DTS пакет, я чуть со стула не упал! Перекачка первой таблицы, содержащей 708 тыс. записей, заняла 1 минуту, а перекачка второй, содержащей 7,8 млн. записей, заняла 9 минут, после чего DTS пакет закончил свою работу успешно (я опускаю этапы очистки таблиц в БД-приемнике, которые занимают по 1 сек.). Вот фрагмент лога, полученного FileMon'ом:

515 11:43:11 sqlservr.exe IRP_MJ_WRITE G:\Data\pilot_spd_log.ldf SUCCESS Offset: 542198272 Length: 58368
516 11:43:11 sqlservr.exe IRP_MJ_WRITE G:\Data\pilot_spd_log.ldf SUCCESS Offset: 542256640 Length: 58368
517 11:43:11 sqlservr.exe IRP_MJ_WRITE G:\Data\pilot_spd_log.ldf SUCCESS Offset: 542315008 Length: 58368
518 11:43:11 sqlservr.exe IRP_MJ_WRITE G:\Data\pilot_spd_log.ldf SUCCESS Offset: 542373376 Length: 58368
519 11:43:11 sqlservr.exe IRP_MJ_WRITE G:\Data\pilot_spd_log.ldf SUCCESS Offset: 542431744 Length: 58368
520 11:43:11 sqlservr.exe IRP_MJ_WRITE G:\Data\pilot_spd_log.ldf SUCCESS Offset: 542490112 Length: 58368
521 11:43:11 sqlservr.exe IRP_MJ_WRITE G:\Data\pilot_spd_log.ldf SUCCESS Offset: 542548480 Length: 58368
522 11:43:11 sqlservr.exe IRP_MJ_WRITE G:\Data\pilot_spd_log.ldf SUCCESS Offset: 542606848 Length: 58368
523 11:43:11 sqlservr.exe IRP_MJ_WRITE G:\Data\pilot_spd_log.ldf SUCCESS Offset: 542665216 Length: 58368

Отмечаю несколько моментов:

1) Ведутся только операции записи в файл.
2) Запись ведется блоками по 58368 байт, хотя мне попадались блоки размером и по 128 Кб, и по 64 Кб (во фрагмент лога не вошли). Видимо, это уже какие-то внутренние заморочки SQL сервера.
3) Запись ведется как в .mdf файл, так и в .ldf (во фрагмент лога запись в .mdf не вошла).
4) Если посчитать по "смещение+длина блока=следующее смещение", то видно, что идет ПОСЛЕДОВАТЕЛЬНАЯ запись на диск. А это уже гораздо приятнее видеть!
5) Правда, должен отметить, что из четырех Xeon'ов два работали на 80%, и общая загрузка составила порядка 47% (на однопроцессорной машине это может стать узким местом при импорте).

Так что получается, что наличие индексов на таблице-получателе при импорте данных вызывает закачку ее в БД tempdb и запуск переиндексации прямо там (причем, возможно, сразу по всем индексам таблицы-получателя, но мне это уже неинтересно), что сильно снижает производительность. Так что мы обошли tempdb и получили снижение времени передачи данных с 3 ч. 20 мин. до 10 мин., т.е. в 20 раз меньше! Теперь осталось выяснить, сколько времени будет занимать восстановление индексов на таблице-получателе, и тогда будет ясно, сколько времени вообще будет занимать процедура импорта.
13 июл 04, 15:07    [803237]     Ответить | Цитировать Сообщить модератору
 Re: Импорт таблиц из одной БД в другую. Help!  [new]
злой шаман
Member

Откуда: Питер
Сообщений: 1253
Еще поставьте Recovery Model Simple в свойствах базы-получателя.
13 июл 04, 15:29    [803324]     Ответить | Цитировать Сообщить модератору
 Re: Импорт таблиц из одной БД в другую. Help!  [new]
злой шаман
Member

Откуда: Питер
Сообщений: 1253
И fillfactor для индексов 100% сделайте.
13 июл 04, 15:31    [803339]     Ответить | Цитировать Сообщить модератору
 Re: Импорт таблиц из одной БД в другую. Help!  [new]
Glory
Member

Откуда:
Сообщений: 104764
Наш программист удалил первичный ключ, и обе таблицы наконец остались без индексов. Запустив DTS пакет, я чуть со стула не упал!
А ПК наверное был кластерный ? А добавляемые значения ПК шли не в монотонновозрастающем порядке а вразнобой ? Что привело к расщеплению страниц кластерного индекса - а это очень дорогостоящая операция
13 июл 04, 15:36    [803353]     Ответить | Цитировать Сообщить модератору
 Re: Импорт таблиц из одной БД в другую. Help!  [new]
GrayMagellan
Member

Откуда:
Сообщений: 188
Я думаю, что Вы сможете найти ответы на свои вопросы, если я опубликую скрипт, описывающий создание обоих таблиц.

Итак, таблица №1 (708 тыс. записей):

CREATE TABLE [dbo].[Pochet] (
	[KOD] [numeric](3, 0) NOT NULL ,
	[INF] [numeric](2, 0) NOT NULL ,
	[FAM] [varchar] (40) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[IMYA] [varchar] (40) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[OTCH] [varchar] (40) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[POL] [char] (1) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[DAT_BORN] [datetime] NOT NULL ,
	[SER_PASP] [varchar] (10) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[NOM_PASP] [varchar] (6) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[STR_SV] [varchar] (14) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[INDEX] [varchar] (6) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[KOD_REG] [numeric](6, 0) NOT NULL ,
	[RAJON] [varchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[TAWN] [varchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[PUNKT] [varchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[STREET] [varchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[DOM] [varchar] (9) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[KORP] [varchar] (7) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[KVAR] [varchar] (7) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[NAM_CB] [varchar] (61) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[NOM_OCB] [varchar] (30) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[MODE_CB] [bit] NOT NULL ,
	[ADRESS] [varchar] (150) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[INN_CB] [varchar] (10) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[TEL_CB] [varchar] (20) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[RASCH_CB] [varchar] (20) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[KORCH_CB] [varchar] (20) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[BIK_CB] [varchar] (9) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[CHET_BL] [varchar] (30) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[BANK_CB] [varchar] (45) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[RKC] [varchar] (30) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[DAT_PR] [datetime] NOT NULL ,
	[NOM_PR] [varchar] (20) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[NAZ_POD] [varchar] (65) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[SUM_VET] [numeric](5, 0) NOT NULL ,
	[SP_OTPR] [varchar] (10) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[DATE1] [datetime] NOT NULL ,
	[DATE11] [datetime] NOT NULL ,
	[DATE2] [datetime] NOT NULL ,
	[D_TYPE] [numeric](1, 0) NOT NULL ,
	[STAJ] [numeric](2, 0) NOT NULL ,
	[VETERAN] [numeric](1, 0) NOT NULL ,
	[YLACH] [bit] NOT NULL ,
	[PROZD] [bit] NOT NULL ,
	[OPI] [bit] NOT NULL ,
	[BP3] [bit] NOT NULL ,
	[BP5] [bit] NOT NULL ,
	[VIP] [bit] NOT NULL ,
	[PRIM] [varchar] (200) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[DBFFILENAME] [varchar] (10) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[NOMINDNF] [numeric](3, 0) NOT NULL ,
	[NOM] [numeric](8, 0) NOT NULL ,
	[datetime_inp] [datetime] NOT NULL ,
	[SPIS_BANK] [numeric](3, 0) NOT NULL ,
	[user] [varchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
	[tel_dom] [varchar] (20) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[uvov] [bit] NOT NULL ,
	[ivov] [bit] NOT NULL ,
	[tt] [bit] NOT NULL ,
	[rpy] [bit] NOT NULL ,
	[vt] [bit] NOT NULL ,
	[i1] [bit] NOT NULL ,
	[i2] [bit] NOT NULL ,
	[pz] [bit] NOT NULL ,
	[zr] [numeric](1, 0) NOT NULL ,
	[lg] [bit] NOT NULL ,
	[pr_ank] [bit] NOT NULL ,
	[nom_dor] [numeric](2, 0) NOT NULL ,
	[dvoynik_ank] [bit] NOT NULL ,
	[nom_bank] [numeric](3, 0) NOT NULL ,
	[ndfl] [smallint] NOT NULL ,
	[type_doc] [char] (2) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL 
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[Pochet] WITH NOCHECK ADD 
	CONSTRAINT [PK_Pochet] PRIMARY KEY  CLUSTERED 
	(
		[NOM]
	)  ON [PRIMARY] 
GO

ALTER TABLE [dbo].[Pochet] ADD 
	CONSTRAINT [DF_Pochet_KOD] DEFAULT (8) FOR [KOD],
	CONSTRAINT [DF_Pochet_INF] DEFAULT (0) FOR [INF],
	CONSTRAINT [DF_Pochet_FAM] DEFAULT ('нет') FOR [FAM],
	CONSTRAINT [DF_Pochet_IMYA] DEFAULT ('нет') FOR [IMYA],
	CONSTRAINT [DF_Pochet_OTCH] DEFAULT ('нет') FOR [OTCH],
	CONSTRAINT [DF_Pochet_POL] DEFAULT ('М') FOR [POL],
	CONSTRAINT [DF_Pochet_DAT_BORN] DEFAULT ('01.01.1800') FOR [DAT_BORN],
	CONSTRAINT [DF_Pochet_SER_PASP] DEFAULT ('нет') FOR [SER_PASP],
	CONSTRAINT [DF_Pochet_NOM_PASP] DEFAULT ('0') FOR [NOM_PASP],
	CONSTRAINT [DF_Pochet_STR_SV] DEFAULT ('нет') FOR [STR_SV],
	CONSTRAINT [DF_Pochet_INDEX] DEFAULT ('нет') FOR [INDEX],
	CONSTRAINT [DF_Pochet_KOD_REG] DEFAULT (0) FOR [KOD_REG],
	CONSTRAINT [DF_Pochet_RAJON] DEFAULT ('нет') FOR [RAJON],
	CONSTRAINT [DF_Pochet_TAWN] DEFAULT ('нет') FOR [TAWN],
	CONSTRAINT [DF_Pochet_PUNKT] DEFAULT ('нет') FOR [PUNKT],
	CONSTRAINT [DF_Pochet_STREET] DEFAULT ('нет') FOR [STREET],
	CONSTRAINT [DF_Pochet_DOM] DEFAULT ('нет') FOR [DOM],
	CONSTRAINT [DF_Pochet_KORP] DEFAULT ('нет') FOR [KORP],
	CONSTRAINT [DF_Pochet_KVAR] DEFAULT ('нет') FOR [KVAR],
	CONSTRAINT [DF_Pochet_NAM_CB] DEFAULT ('ПОЧТОВЫЙ ПЕРЕВОД С ДОСТАВКОЙ') FOR [NAM_CB],
	CONSTRAINT [DF_Pochet_NOM_OCB] DEFAULT ('нет') FOR [NOM_OCB],
	CONSTRAINT [DF_Pochet_MODE_CB] DEFAULT (0) FOR [MODE_CB],
	CONSTRAINT [DF_Pochet_ADRESS] DEFAULT ('нет') FOR [ADRESS],
	CONSTRAINT [DF_Pochet_INN_CB] DEFAULT ('нет') FOR [INN_CB],
	CONSTRAINT [DF_Pochet_TEL_CB] DEFAULT ('нет') FOR [TEL_CB],
	CONSTRAINT [DF_Pochet_RASCH_CB] DEFAULT ('нет') FOR [RASCH_CB],
	CONSTRAINT [DF_Pochet_KORCH_CB] DEFAULT ('нет') FOR [KORCH_CB],
	CONSTRAINT [DF_Pochet_BIK_CB] DEFAULT ('нет') FOR [BIK_CB],
	CONSTRAINT [DF_Pochet_CHET_BL] DEFAULT ('нет') FOR [CHET_BL],
	CONSTRAINT [DF_Pochet_BANK_CB] DEFAULT ('нет') FOR [BANK_CB],
	CONSTRAINT [DF_Pochet_RKC] DEFAULT ('нет') FOR [RKC],
	CONSTRAINT [DF_Pochet_DAT_PR] DEFAULT ('01.01.1800') FOR [DAT_PR],
	CONSTRAINT [DF_Pochet_NOM_PR] DEFAULT ('нет') FOR [NOM_PR],
	CONSTRAINT [DF_Pochet_NAZ_POD] DEFAULT ('нет') FOR [NAZ_POD],
	CONSTRAINT [DF_Pochet_SUM_VET] DEFAULT (0) FOR [SUM_VET],
	CONSTRAINT [DF_Pochet_SP_OTPR] DEFAULT ('электронно') FOR [SP_OTPR],
	CONSTRAINT [DF_Pochet_DATE1] DEFAULT ('01.01.1800') FOR [DATE1],
	CONSTRAINT [DF_Pochet_DATE11] DEFAULT ('01.01.1800') FOR [DATE11],
	CONSTRAINT [DF_Pochet_DATE2] DEFAULT ('12.12.2999') FOR [DATE2],
	CONSTRAINT [DF_Pochet_D_TYPE] DEFAULT (0) FOR [D_TYPE],
	CONSTRAINT [DF_Pochet_STAJ] DEFAULT (0) FOR [STAJ],
	CONSTRAINT [DF_Pochet_VETERAN] DEFAULT (0) FOR [VETERAN],
	CONSTRAINT [DF_Pochet_YLACH] DEFAULT (0) FOR [YLACH],
	CONSTRAINT [DF_Pochet_PROZD] DEFAULT (0) FOR [PROZD],
	CONSTRAINT [DF_Pochet_OPI] DEFAULT (0) FOR [OPI],
	CONSTRAINT [DF_Pochet_BP3] DEFAULT (0) FOR [BP3],
	CONSTRAINT [DF_Pochet_BP5] DEFAULT (0) FOR [BP5],
	CONSTRAINT [DF_Pochet_VIP] DEFAULT (0) FOR [VIP],
	CONSTRAINT [DF_Pochet_PRIM] DEFAULT ('нет') FOR [PRIM],
	CONSTRAINT [DF_Pochet_DBFFILENAME] DEFAULT ('нет') FOR [DBFFILENAME],
	CONSTRAINT [DF_Pochet_NOMINDNF] DEFAULT (0) FOR [NOMINDNF],
	CONSTRAINT [DF_Pochet_datetime_inp] DEFAULT ('01.01.1800') FOR [datetime_inp],
	CONSTRAINT [DF_Pochet_SPIS_BANK] DEFAULT (0) FOR [SPIS_BANK],
	CONSTRAINT [DF_Pochet_tel_dom] DEFAULT ('нет') FOR [tel_dom],
	CONSTRAINT [DF_Pochet_uvov] DEFAULT (0) FOR [uvov],
	CONSTRAINT [DF_Pochet_ivov] DEFAULT (0) FOR [ivov],
	CONSTRAINT [DF_Pochet_tt] DEFAULT (0) FOR [tt],
	CONSTRAINT [DF_Pochet_rpy] DEFAULT (0) FOR [rpy],
	CONSTRAINT [DF_Pochet_vt] DEFAULT (0) FOR [vt],
	CONSTRAINT [DF_Pochet_i1] DEFAULT (0) FOR [i1],
	CONSTRAINT [DF_Pochet_i2] DEFAULT (0) FOR [i2],
	CONSTRAINT [DF_Pochet_pz] DEFAULT (0) FOR [pz],
	CONSTRAINT [DF_Pochet_zr] DEFAULT (0) FOR [zr],
	CONSTRAINT [DF_Pochet_lg] DEFAULT (0) FOR [lg],
	CONSTRAINT [DF_Pochet_nom_dor] DEFAULT (8) FOR [nom_dor],
	CONSTRAINT [DF_Pochet_dvoynik_ank] DEFAULT (0) FOR [dvoynik_ank],
	CONSTRAINT [DF_Pochet_nom_bank] DEFAULT (0) FOR [nom_bank],
	CONSTRAINT [DF_Pochet_ndfl] DEFAULT (13) FOR [ndfl],
	CONSTRAINT [DF_Pochet_type_doc] DEFAULT ('21') FOR [type_doc]
GO

 CREATE  INDEX [KEY_FAM] ON [dbo].[Pochet]([FAM], [IMYA], [OTCH]) ON [PRIMARY]
GO

 CREATE  UNIQUE  INDEX [KEY_PASP] ON [dbo].[Pochet]([SER_PASP], [NOM_PASP]) ON [PRIMARY]
GO

 CREATE  INDEX [KEY_DATE1] ON [dbo].[Pochet]([FAM], [IMYA], [OTCH], [DATE1]) ON [PRIMARY]
GO

 CREATE  INDEX [KEY_STR_SV] ON [dbo].[Pochet]([STR_SV]) ON [PRIMARY]
GO

 CREATE  INDEX [KEY_IMPORT] ON [dbo].[Pochet]([DBFFILENAME], [NOMINDNF]) ON [PRIMARY]
GO

 CREATE  INDEX [KEY_INF] ON [dbo].[Pochet]([INF]) ON [PRIMARY]
GO

 CREATE  INDEX [KEY_BP3] ON [dbo].[Pochet]([BP3]) ON [PRIMARY]
GO

 CREATE  INDEX [KEY_BP5] ON [dbo].[Pochet]([BP5]) ON [PRIMARY]
GO

 CREATE  INDEX [KEY_POL] ON [dbo].[Pochet]([POL]) ON [PRIMARY]
GO

 CREATE  INDEX [KEY_DTYPE] ON [dbo].[Pochet]([D_TYPE]) ON [PRIMARY]
GO

 CREATE  INDEX [KEY_STAJ] ON [dbo].[Pochet]([STAJ]) ON [PRIMARY]
GO

 CREATE  INDEX [KEY_VETERAN] ON [dbo].[Pochet]([VETERAN]) ON [PRIMARY]
GO

 CREATE  INDEX [KEY_NOM_DOR] ON [dbo].[Pochet]([nom_dor], [KOD]) ON [PRIMARY]
GO

 CREATE  INDEX [KEY_KOD] ON [dbo].[Pochet]([KOD]) ON [PRIMARY]
GO

 CREATE  INDEX [KEY_BORN] ON [dbo].[Pochet]([DAT_BORN]) ON [PRIMARY]
GO

 CREATE  INDEX [KEY_LIC] ON [dbo].[Pochet]([CHET_BL]) ON [PRIMARY]
GO

ALTER TABLE [dbo].[Pochet] ADD 
	CONSTRAINT [FK_Pochet_InfPoc] FOREIGN KEY 
	(
		[INF]
	) REFERENCES [dbo].[InfPoc] (
		[INF]
	) ON DELETE CASCADE  ON UPDATE CASCADE 
GO


Таблица №2 (7,8 млн. записей):

CREATE TABLE [dbo].[Isx] (
	[DAT_OP] [datetime] NOT NULL ,
	[SP_OTPR] [varchar] (10) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[BPNOM] [numeric](2, 0) NOT NULL ,
	[NOM_BL] [numeric](8, 0) NOT NULL ,
	[NOM_PL] [numeric](8, 0) NOT NULL ,
	[FAM] [varchar] (35) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[IMYA] [varchar] (35) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[OTCH] [varchar] (35) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[CHET_BL] [varchar] (30) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[NAM_CB] [varchar] (150) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[INN_CB] [char] (10) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[RASCH_CB] [char] (20) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[BIK_CB] [char] (9) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[SUM_NA] [numeric](7, 2) NOT NULL ,
	[SUM_NAST] [numeric](7, 2) NOT NULL ,
	[SUM_NPD] [numeric](6, 2) NOT NULL ,
	[SUM_NPDST] [numeric](6, 2) NOT NULL ,
	[SUM_UPD] [numeric](6, 2) NOT NULL ,
	[SUM_UPDST] [numeric](6, 2) NOT NULL ,
	[SUM_VIP] [numeric](7, 2) NOT NULL ,
	[SUM_VIPST] [numeric](7, 2) NOT NULL ,
	[N_PLAT] [numeric](6, 0) NOT NULL ,
	[DAT_VOZ] [datetime] NOT NULL ,
	[PER_VIP] [varchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
	[SUM_PER] [numeric](7, 2) NOT NULL ,
	[PL_PER] [numeric](6, 2) NOT NULL ,
	[NDS_PL] [numeric](6, 2) NOT NULL ,
	[DAT_OP2] [datetime] NOT NULL ,
	[DAT_S] [datetime] NOT NULL ,
	[DAT_V] [datetime] NOT NULL ,
	[KOD] [numeric](3, 0) NOT NULL ,
	[TYPEVIP] [numeric](2, 0) NOT NULL ,
	[id_dor] [numeric](2, 0) NOT NULL ,
	[nom_bank] [numeric](3, 0) NOT NULL ,
	[spis_bank] [numeric](3, 0) NOT NULL ,
	[date_vvod] [datetime] NULL ,
	[prim] [varchar] (200) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
	[ndfl] [smallint] NOT NULL ,
	[nom_spis] [numeric](9, 0) NOT NULL ,
	[iskl] [bit] NOT NULL 
) ON [PRIMARY]
GO

 CREATE  CLUSTERED  INDEX [key_bl] ON [dbo].[Isx]([NOM_BL], [DAT_OP], [TYPEVIP]) ON [PRIMARY]
GO

ALTER TABLE [dbo].[Isx] ADD 
	CONSTRAINT [DF_Isx_NOM_PL] DEFAULT (0) FOR [NOM_PL],
	CONSTRAINT [DF_Isx_SUM_NA] DEFAULT (0) FOR [SUM_NA],
	CONSTRAINT [DF_Isx_SUM_NAST] DEFAULT (0) FOR [SUM_NAST],
	CONSTRAINT [DF_Isx_SUM_NPD] DEFAULT (0) FOR [SUM_NPD],
	CONSTRAINT [DF_Isx_SUM_NPDST] DEFAULT (0) FOR [SUM_NPDST],
	CONSTRAINT [DF_Isx_SUM_UPD] DEFAULT (0) FOR [SUM_UPD],
	CONSTRAINT [DF_Isx_SUM_UPDST] DEFAULT (0) FOR [SUM_UPDST],
	CONSTRAINT [DF_Isx_SUM_VIP] DEFAULT (0) FOR [SUM_VIP],
	CONSTRAINT [DF_Isx_SUM_VIPST] DEFAULT (0) FOR [SUM_VIPST],
	CONSTRAINT [DF_Isx_N_PLAT] DEFAULT (0) FOR [N_PLAT],
	CONSTRAINT [DF_Isx_DAT_VOZ] DEFAULT ('01.01.1800') FOR [DAT_VOZ],
	CONSTRAINT [DF_Isx_PER_VIP] DEFAULT ('') FOR [PER_VIP],
	CONSTRAINT [DF_Isx_SUM_PER] DEFAULT (0) FOR [SUM_PER],
	CONSTRAINT [DF_Isx_PL_PER] DEFAULT (0) FOR [PL_PER],
	CONSTRAINT [DF_Isx_NDS_PL] DEFAULT (0) FOR [NDS_PL],
	CONSTRAINT [DF_Isx_DAT_OP2] DEFAULT ('01.01.1800') FOR [DAT_OP2],
	CONSTRAINT [DF_Isx_nom_bank] DEFAULT (0) FOR [nom_bank],
	CONSTRAINT [DF_Isx_spis_bank] DEFAULT (0) FOR [spis_bank],
	CONSTRAINT [DF_Isx_ndfl] DEFAULT (13) FOR [ndfl],
	CONSTRAINT [DF_Isx_nom_spis] DEFAULT (0) FOR [nom_spis],
	CONSTRAINT [DF_Isx_iskl] DEFAULT (0) FOR [iskl]
GO

 CREATE  INDEX [key_dat] ON [dbo].[Isx]([DAT_OP], [DAT_V], [NOM_PL]) ON [PRIMARY]
GO

 CREATE  INDEX [key_typeviip] ON [dbo].[Isx]([iskl], [DAT_OP], [BPNOM], [NOM_BL], [NOM_PL], [TYPEVIP]) ON [PRIMARY]
GO

 CREATE  INDEX [key_dor] ON [dbo].[Isx]([iskl], [id_dor], [DAT_OP], [SUM_VIP], [SUM_NPD], [SUM_VIPST], [SUM_NPDST]) ON [PRIMARY]
GO

 CREATE  INDEX [key_dat_voz] ON [dbo].[Isx]([DAT_VOZ] DESC ) ON [PRIMARY]
GO

 CREATE  INDEX [key_dat_op] ON [dbo].[Isx]([DAT_OP] DESC ) ON [PRIMARY]
GO

 CREATE  INDEX [key_prov] ON [dbo].[Isx]([NOM_BL], [TYPEVIP]) ON [PRIMARY]
GO

 CREATE  INDEX [key_blagopol] ON [dbo].[Isx]([NOM_BL], [DAT_OP]) ON [PRIMARY]
GO

 CREATE  INDEX [key_sum_vip] ON [dbo].[Isx]([SUM_VIP], [DAT_OP], [NOM_BL], [BPNOM]) ON [PRIMARY]
GO

 CREATE  INDEX [key_nom_pl] ON [dbo].[Isx]([SUM_NA], [DAT_OP], [NOM_PL] DESC ) ON [PRIMARY]
GO

 CREATE  INDEX [key_nom_spis] ON [dbo].[Isx]([SUM_NA], [DAT_OP], [nom_spis] DESC ) ON [PRIMARY]
GO

 CREATE  INDEX [key_oplat] ON [dbo].[Isx]([iskl], [NOM_BL], [TYPEVIP], [DAT_V]) ON [PRIMARY]
GO

 CREATE  INDEX [key_voz] ON [dbo].[Isx]([DAT_OP], [NOM_PL], [SUM_VIP], [BIK_CB]) ON [PRIMARY]
GO

13 июл 04, 15:53    [803450]     Ответить | Цитировать Сообщить модератору
 Re: Импорт таблиц из одной БД в другую. Help!  [new]
Полуэкт
Member

Откуда:
Сообщений: 381
не мое это собачье дело, но я думаю что "программисту" называющему поля типа

[KOD]
[IMYA]
[OTCH]
[DAT_BORN]
[RAJON]
[TAWN]
[STREET]
[DATE1]
[DATE11]
[DATE2]
[OPI]
[BP3]
[BP5]
[uvov]
[ivov]
[tt]
[rpy]
[vt]
[i1]
[i2]
[pz]
[zr]
[lg]
[pr_ank]
[ndfl]

не стоит особо доверять :)

а с индексами я намучался с ораклом. год мучался пока не поменял работу на сиквел :)

и было там всего 3 гига база но мало свободного пространства и не особо с памятью... как они мне кишки вымотали капец просто. так что ваша ситуация не самая плохая

хотя я лично твердо уверен что копировать файлы бэкапа или детаченной ночью базы физическим файлом и потом аттач или рестор намного красивее чем восстановление индексов. и быстрее и понятнее.
13 июл 04, 20:30    [804383]     Ответить | Цитировать Сообщить модератору
 Re: Импорт таблиц из одной БД в другую. Help!  [new]
GrayMagellan
Member

Откуда:
Сообщений: 188
Полуэкт
не мое это собачье дело, но я думаю что "программисту" называющему поля типа

[KOD]
[IMYA]
[OTCH]
[DAT_BORN]
[RAJON]
[TAWN]
[STREET]
[DATE1]
[DATE11]
[DATE2]
[OPI]
[BP3]
[BP5]
[uvov]
[ivov]
[tt]
[rpy]
[vt]
[i1]
[i2]
[pz]
[zr]
[lg]
[pr_ank]
[ndfl]

не стоит особо доверять :)


Так он же не знал, что когда-нибудь я выложу скрипты, создающие таблицы, в форум!!! А как нужно, по Вашему ? :)

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


Нам тоже эта идея нравится, но ее выполнению мешает разница в структуре баз (они отличаются по структуре процентов на 15) и это диктуется производственной необходимостью.

Теперь я готов Вам сообщить, что идея "удалить индексы - импортировать данные - создать индексы" дала свои плоды. Реализовав ее, на мощном сервере время импорта данных сократилось с 3 часов 15 минут до 40 минут, а на интернетовском сервере с 5 часов 30 минут до 1 часа 31 минут. При этом время работы (для интернетовского сервера) по шагам таково:

удаление индексов с pochet - 1 минута
удаление индексов с isx - 33 минуты
импорт данных - 16 минут
создание индексов на pochet - 1 минута
создание индексов на isx - 37 минут
очистка журнала транзакций - 11 секунд :)
усечение журнала транзакций - 1 секунда

В принципе, свою проблему мы решили :) Но репликацию транзакций все равно будем пробовать, а вдруг она даст еще больший прирост быстродействия, чем существующее решение.

Хочу отметить следующее: наличие одного-единственного индекса на таблице вызывало закачку данных в tempdb и отвратительную работу дисковой подсистемы (видимо, создание индексов на таблицу прямо в tempdb), как описано выше. Какой в этом смысл, кто-нибудь знает?
14 июл 04, 13:42    [806006]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить