Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Воспроизведение скриптов TSQL.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Вопрос у меня следующий. Справедливо ли следующее утверждение. Собирая полную трассу(для простоты предположим один поток) и имея бэкап, невозможно для всех случае жизни ее воспроизвести повторно? Разумеется таким образом что бы результат был одинаковым. Я этим вопросом давно был озадачен, понятно что нужно было бы писать парсер , преобразовывать конструкции в трассе и т.п. но были какие то моменты которые в трассу вообще не попадали.(по моему чего то было с динамическими курсорами) Если это утверждение справедливо то приведите примеры.
Второй вопрос, существуют ли продукт которые позволял бы записывать трассы или трафик и затем иметь возможность воспроизводить повторно(на идентичной копии БД).
8 июл 13, 22:44    [14538749]     Ответить | Цитировать Сообщить модератору
 Re: Воспроизведение скриптов TSQL.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Поиск показывает что то типа http://msdn.microsoft.com/ru-ru/library/ff878183.aspx

Но по моему фигня какая то...
8 июл 13, 22:58    [14538773]     Ответить | Цитировать Сообщить модератору
 Re: Воспроизведение скриптов TSQL.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Сразу отвечу на вопрос, зачем это нужно.
1) автоматически проверять функциональность при переходе на новую версию MSSQL
2) автоматически проверять нагрузку на новом серверном оборудовании или новой версии MSSQL (не создавая при этом синтетических нагрузочных тестов, которые весьма трудоемки и не всегда точны).
Ну и еще есть пару экзотических задач в которых можно применить.
8 июл 13, 23:08    [14538789]     Ответить | Цитировать Сообщить модератору
 Re: Воспроизведение скриптов TSQL.  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
http://support.microsoft.com/kb/944837

After you capture a trace for an instance of SQL Server, you can use the RML Utilities for SQL Server to replay the trace file against another instance of SQL Server. If you also capture the trace during the replay, you can use the RML Utilities for SQL Server to compare the new trace file to the original trace file. You can use this technique to test how SQL Server behaves after you apply changes. For example, you can use this technique to test how SQL Server behaves after you do the following:
9 июл 13, 00:37    [14538927]     Ответить | Цитировать Сообщить модератору
 Re: Воспроизведение скриптов TSQL.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Интересно а кто ни будь на практике этим пользовался? Я конечно попробую, но скорее всего данная тулза судя по вопросам в поисковиках имеет ряд недостатков.
9 июл 13, 10:25    [14539637]     Ответить | Цитировать Сообщить модератору
 Re: Воспроизведение скриптов TSQL.  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
да в свое время снимакли трассу с боевого сервера и вопроизводили на тестовом,писали для етого свою тулзу которая в в нескольких потоках делала манипуляции с БД,использовали для нагрузочного тестирования железяк под скл сервер,для расчет так сказать "запаса прочности" железа. Есно добиться идентичсти 1:1 не задачи не стояло.
9 июл 13, 10:53    [14539789]     Ответить | Цитировать Сообщить модератору
 Re: Воспроизведение скриптов TSQL.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Просто сейчас есть мысль сделать подобный продукт. Уже отработана технология проксирования всех запросов к MSSQL.(сделали кластерное решение для always on) Их можно писать очень быстро(практически без потерь для продакшн системы) получая хронологию вызовов(timestart,timestop), получаемый результат(успешно-неуспешно, текст экспшена и т.п.). Соответственно также их можно затем воспроизводить. Но есть несколько проблем. С одной стороны для высокой нагрузки аналогичной реальной необходимо делать все с уровнем параллелизма не меньшим чем на реальной системе. C другой стороны хронология выполнения операций(как минимум на изменение) должна быть аналогичной реальной(продакшн) системе. С этим есть определенные сложности. Понятно что можно сделать координатор который будет управлять потоками с минимальными издержками. Но сложность в том что передавая в определенной хронологии на исполнение в сервер через сетевой интерфейс команды (да хоть локально через шаред мемори) запросы из разных потоков нельзя рассчитывать, что они будут выполняться в такой же последовательности на сервере. Собственно говоря это неоднократно экспериментально доказанный факт. При высокой параллельной нагрузке это обязательно происходит. Правда эту проблему с определенными ограничениями удалось решить. Есть еще ряд сложностей. Например обработка джобов. Очевидно что в данном случае рассчитывать на время(например из трассы) и синхронизировать порядок выполнения операций по нему будет не верно. Но в крайнем случае на это есть транзакшн лог который и является арбитром кто же победил. Ну и в завершении хочу отметить что если потоки не конкурируют между собой по данным (как минимум на изменение) , то строгой хронологией можно пренебречь и синхронизировать по времени(погрешность в миллисекунды не повлияет на результат)
9 июл 13, 12:56    [14540607]     Ответить | Цитировать Сообщить модератору
 Re: Воспроизведение скриптов TSQL.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Хорошо, последний вопрос. А вообще это кому ни будь нужно? Потенциально продукт который бы позволил бы проверить и исправить функциональность. Нагрузка вообще должна быть на одном оборудовании и версии СУБД(всей инфраструктуры) полностью идентичной. То есть потенциально можно было бы отказаться от синтетических тестов нагрузочного тестирования. Впрочем может оказаться что это технологически нереализуемо, или много ограничений.
10 июл 13, 00:27    [14544375]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить