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

Откуда:
Сообщений: 453
Коллеги, создалась такая ситуация:

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

На обеих выполняется скрипт, который на одной занимает 25 минут или около того, а на второй 12 часов!

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

select s1.*, s2.value as SYM_value
from sysconfigures s1, SYM.master.dbo.sysconfigures s2
where s1.config = s2.config
and s1.value <> s2.value

выдаёт следующее:

0 124 default language 1 21
1 518 show advanced options 1 0
1 16386 Enable or disable Database Mail XPs 3 0
1 16390 Enable or disable command shell 3 0

Всё то вряд ли влияет на производительность. Единственное значимое отличие - на SYM не стоит SP3 (вообще никакого SP нет):

Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64) Jul 9 2008 14:17:44 Copyright (c) 1988-2008 Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.0 <X64> (Build 6002: Service Pack 2)

Значит либо дело действительно в сервис-паке, либо в индексах или триггерах. Ставить SP3 на SYM и проверить таким образом не в нём ли дело желания никакого нет :) потому что именно на этом серваке работает быстрее - если станет медленнее, это будет не тот результат, который нужен.


Итак вопрос: нет ли у кого на примете или в загашнике какой-либо скриптины или иной приблуды, которая бы выявляла разницу в индексах/триггерах между схожими базами?
10 янв 14, 12:33    [15395838]     Ответить | Цитировать Сообщить модератору
 Re: Выявление различий в индексах баз  [new]
хмхмхм
Guest
Кесарь,

сравните планы выполнения этого запроса на двух разных серверах
10 янв 14, 12:37    [15395882]     Ответить | Цитировать Сообщить модератору
 Re: Выявление различий в индексах баз  [new]
Кесарь
Member

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


Если бы речь шла о десяти минутах, то можно было бы. А так 12 часов ждать окончания работы...
10 янв 14, 12:47    [15395969]     Ответить | Цитировать Сообщить модератору
 Re: Выявление различий в индексах баз  [new]
Glory
Member

Откуда:
Сообщений: 104760
Кесарь
Если бы речь шла о десяти минутах, то можно было бы. А так 12 часов ждать окончания работы...

Предварительный план нужно ждать пару секунд
10 янв 14, 12:54    [15396047]     Ответить | Цитировать Сообщить модератору
 Re: Выявление различий в индексах баз  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Кесарь
Коллеги, создалась такая ситуация:

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

На обеих выполняется скрипт, который на одной занимает 25 минут или около того, а на второй 12 часов!

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

select s1.*, s2.value as SYM_value
from sysconfigures s1, SYM.master.dbo.sysconfigures s2
where s1.config = s2.config
and s1.value <> s2.value

выдаёт следующее:

0 124 default language 1 21
1 518 show advanced options 1 0
1 16386 Enable or disable Database Mail XPs 3 0
1 16390 Enable or disable command shell 3 0

Всё то вряд ли влияет на производительность. Единственное значимое отличие - на SYM не стоит SP3 (вообще никакого SP нет):

Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64) Jul 9 2008 14:17:44 Copyright (c) 1988-2008 Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.0 <X64> (Build 6002: Service Pack 2)

Значит либо дело действительно в сервис-паке, либо в индексах или триггерах. Ставить SP3 на SYM и проверить таким образом не в нём ли дело желания никакого нет :) потому что именно на этом серваке работает быстрее - если станет медленнее, это будет не тот результат, который нужен.


Итак вопрос: нет ли у кого на примете или в загашнике какой-либо скриптины или иной приблуды, которая бы выявляла разницу в индексах/триггерах между схожими базами?



1. приблуда есть у red-gate, 14 дней вам должно хватить
2. не установить ни одного сервис-пака, когда уже выпущен сп3 - это надо быть смелыми юзерами. Вы хоть почитайте, что эти 3 сп исправляют.
3. а физщически компьютеры разные, на которых стоят эти sql серверы или один и тот же?
10 янв 14, 12:56    [15396069]     Ответить | Цитировать Сообщить модератору
 Re: Выявление различий в индексах баз  [new]
Кесарь
Member

Откуда:
Сообщений: 453
Winnipuh
1. приблуда есть у red-gate, 14 дней вам должно хватить


Спсб. Не могли бы вы поточнее ткнуть, а то вот здесь продуктов весьма немало http://www.red-gate.com/products/

2. не установить ни одного сервис-пака, когда уже выпущен сп3 - это надо быть смелыми юзерами. Вы хоть почитайте, что эти 3 сп исправляют.


А где прочитать, что они портят?! :) Сервер этот сугубо служебно-тестовый, потому вот так.

3. а физщически компьютеры разные, на которых стоят эти sql серверы или один и тот же?


Физически разные. При чём тот, на котором работает долго, мощнее (рабочий сервак).
10 янв 14, 13:11    [15396189]     Ответить | Цитировать Сообщить модератору
 Re: Выявление различий в индексах баз  [new]
хмхмхм
Guest
Кесарь

Спсб. Не могли бы вы поточнее ткнуть, а то вот здесь продуктов весьма немало http://www.red-gate.com/products/


Утилита называется SQL Compare. Но мне все-таки кажется более логичным сравнивать эти два запроса, а не всю базу целиком. Тем более что, после того как обе базы вы приведете в идентичное состояние по структуре, запрос ваш может все также отрабатывать 12 часов.
10 янв 14, 13:30    [15396334]     Ответить | Цитировать Сообщить модератору
 Re: Выявление различий в индексах баз  [new]
хмхмхм
Guest
[quot Кесарь]
Winnipuh
3. а физщически компьютеры разные, на которых стоят эти sql серверы или один и тот же?


Физически разные. При чём тот, на котором работает долго, мощнее (рабочий сервак).


А кол-во данных в таблицах, из которых идет выборка, одинаковое? А плотность данных?
Кажется мне, что ничего вы сравнением баз не улучшите.
10 янв 14, 13:31    [15396350]     Ответить | Цитировать Сообщить модератору
 Re: Выявление различий в индексах баз  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31425
Кесарь
2. не установить ни одного сервис-пака, когда уже выпущен сп3 - это надо быть смелыми юзерами. Вы хоть почитайте, что эти 3 сп исправляют.
А где прочитать, что они портят?! :) Сервер этот сугубо служебно-тестовый, потому вот так.
Почитать можно в инете.

Но очевидно, что портят они меньше, чем исправляют.
10 янв 14, 14:29    [15396831]     Ответить | Цитировать Сообщить модератору
 Re: Выявление различий в индексах баз  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
alexeyvg
Кесарь
пропущено...
А где прочитать, что они портят?! :) Сервер этот сугубо служебно-тестовый, потому вот так.
Почитать можно в инете.

Но очевидно, что портят они меньше, чем исправляют.


ну, надо понимать, в данном случае это из серии

приблуда, скуль, маздай, мелкософт... ;-)
10 янв 14, 15:23    [15397408]     Ответить | Цитировать Сообщить модератору
 Re: Выявление различий в индексах баз  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Кесарь
Winnipuh
1. приблуда есть у red-gate, 14 дней вам должно хватить


Спсб. Не могли бы вы поточнее ткнуть, а то вот здесь продуктов весьма немало http://www.red-gate.com/products/

2. не установить ни одного сервис-пака, когда уже выпущен сп3 - это надо быть смелыми юзерами. Вы хоть почитайте, что эти 3 сп исправляют.


А где прочитать, что они портят?! :) Сервер этот сугубо служебно-тестовый, потому вот так.

3. а физщически компьютеры разные, на которых стоят эти sql серверы или один и тот же?


Физически разные. При чём тот, на котором работает долго, мощнее (рабочий сервак).


Почитать - на сайте.

Рабочий более мощный - в каком смысле? память? диски?
Как расположена база там и там?

У вас на рабочем ещ ечто-то рабоатет? с этой же базой или с другими?
10 янв 14, 15:25    [15397435]     Ответить | Цитировать Сообщить модератору
 Re: Выявление различий в индексах баз  [new]
Кесарь
Member

Откуда:
Сообщений: 453
хмхмхм
Утилита называется SQL Compare. Но мне все-таки кажется более логичным сравнивать эти два запроса, а не всю базу целиком.


Утилита очень удобная и простая, спсб. Вот теперь, когда утилита показала, что значимой разницы между базами нет, можно анализировать работу запроса :)
10 янв 14, 17:52    [15398542]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить