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

Откуда:
Сообщений: 1427
Вот сам запрос оценочный
use [CONSLIDATION]
go
SELECT TOP 20
[Total Cost] = ROUND(avg_total_user_cost * avg_user_impact * (user_seeks + user_scans),0),
avg_user_impact,
TableName = statement,
[EqualityUsage] = equality_columns,
[InequalityUsage] = inequality_columns,
[Include Cloumns] = included_columns
FROM sys.dm_db_missing_index_groups g
INNER JOIN sys.dm_db_missing_index_group_stats s ON s.group_handle = g.index_group_handle
INNER JOIN sys.dm_db_missing_index_details d ON d.index_handle = g.index_handle
WHERE database_id = DB_ID()
ORDER BY [Total Cost] DESC

а вот результат - помогите понять все ли нормально со статистикой и индексами

Total Costavg_user_impactTableNameEqualityUsageInequalityUsageInclude Cloumns
1230621146[CONSLIDATION_MSFO_LCHUMAKOV1].[dbo].[_AccRgED1445][_Correspond], [_Value_TYPE], [_Value_RTRef][_Period][_RecorderTRef], [_RecorderRRef], [_LineNo], [_KindRRef], [_Value_RRRef]
321548243,37[CONSLIDATION_MSFO_LCHUMAKOV1].[dbo].[_AccRg1410][_Active][_Period][_Fld1411RRef], [_Fld1417]
272196017,86[CONSLIDATION_MSFO_LCHUMAKOV1].[dbo].[_AccRg1410][_Active][_Period][_RecorderTRef], [_RecorderRRef], [_LineNo], [_AccountDtRRef], [_Fld1411RRef], [_Fld1417]
79247358,96[CONSLIDATION_MSFO_LCHUMAKOV1].[dbo].[_AccRg1410][_Active][_Period][_AccountDtRRef], [_Fld1411RRef], [_Fld1417]
70881211,5[CONSLIDATION_MSFO_LCHUMAKOV1].[dbo].[_AccRg1410][_Active][_Period][_RecorderTRef], [_RecorderRRef], [_LineNo], [_AccountCtRRef], [_Fld1411RRef], [_Fld1417]
56058060,06[CONSLIDATION_MSFO_LCHUMAKOV1].[dbo].[_AccRg1410][_Active], [_AccountDtRRef][_Period][_Fld1411RRef], [_Fld1417]
22723845,82[CONSLIDATION_MSFO_LCHUMAKOV1].[dbo].[_AccRg1410][_Active], [_AccountCtRRef][_Period][_Fld1411RRef], [_Fld1417]
21393437,72[CONSLIDATION_MSFO_LCHUMAKOV1].[dbo].[_AccRg1410][_Active][_Period][_AccountCtRRef], [_Fld1411RRef], [_Fld1417]
19748954,72[CONSLIDATION_MSFO_LCHUMAKOV1].[dbo].[_AccRg1410][_Active], [_AccountDtRRef], [_AccountCtRRef][_Period][_RecorderTRef], [_RecorderRRef], [_LineNo], [_Fld1411RRef], [_Fld1417]
14534667,41[CONSLIDATION_MSFO_LCHUMAKOV1].[dbo].[_AccRg1410][_Active], [_AccountCtRRef][_Period][_RecorderTRef], [_RecorderRRef], [_LineNo], [_AccountDtRRef], [_Fld1411RRef], [_Fld1417]
12373240,18[CONSLIDATION_MSFO_LCHUMAKOV1].[dbo].[_AccRg1410][_Active][_Period][_AccountDtRRef], [_AccountCtRRef], [_Fld1411RRef], [_Fld1417]
9712248,81[CONSLIDATION_MSFO_LCHUMAKOV1].[dbo].[_AccRg1410][_Active], [_AccountDtRRef][_Period][_AccountCtRRef], [_Fld1411RRef], [_Fld1417]
9436547,08[CONSLIDATION_MSFO_LCHUMAKOV1].[dbo].[_AccRg1410][_Active], [_AccountCtRRef][_Period][_AccountDtRRef], [_Fld1411RRef], [_Fld1417]
6084337,43[CONSLIDATION_MSFO_LCHUMAKOV1].[dbo].[_AccRg1410][_Active], [_AccountCtRRef][_Period][_RecorderTRef], [_RecorderRRef], [_LineNo], [_Fld1411RRef], [_Fld1417]
1976443,88[CONSLIDATION_MSFO_LCHUMAKOV1].[dbo].[_AccRg1410][_Active], [_AccountDtRRef][_Period][_RecorderTRef], [_RecorderRRef], [_LineNo], [_Fld1411RRef], [_Fld1417]
1917849,23[CONSLIDATION_MSFO_LCHUMAKOV1].[dbo].[_AccRg1410][_Active], [_AccountDtRRef][_Period][_RecorderTRef], [_RecorderRRef], [_LineNo], [_AccountCtRRef], [_Fld1411RRef], [_Fld1417]


---------------------------------------------
Не забудь поставить фильтр между мозгами и языком!
Best regards/Bol
4 июл 13, 11:44    [14521124]     Ответить | Цитировать Сообщить модератору
 Re: Связка 1С и SQL как оценить качество  [new]
Glory
Member

Откуда:
Сообщений: 104751
Bol
а вот результат - помогите понять все ли нормально со статистикой и индексами

sys.dm_db_missing_index_groups - это _отсутствующие_ по мнению оптимизатора индексы
Вы хотите, чтобы кто-то оценил, нужно ли вам создать эти индексы ?
4 июл 13, 11:54    [14521195]     Ответить | Цитировать Сообщить модератору
 Re: Связка 1С и SQL как оценить качество  [new]
Bol
Member

Откуда:
Сообщений: 1427
1C штука мне по поводу индексации неясная. Нкоторые поля там нельзя индексировать средствами 1С - например в регистре хозрасчетный кажется. а отчет составляется 30 мин - хотя сервер ну оч хорош... 192 оперативки диски SSD Я хочу понять есть ли узкое место и можно ли например проиндексиовать эти поля средствами SQL на тестовой базе, мож 1С не поднимется.. Даст ли прирост производительности чтения индексирование этих полей. о по сути Вы правы вопрос именно такой - надо ли эти поля индексировать
4 июл 13, 12:11    [14521305]     Ответить | Цитировать Сообщить модератору
 Re: Связка 1С и SQL как оценить качество  [new]
Glory
Member

Откуда:
Сообщений: 104751
Bol
и можно ли например проиндексиовать эти поля средствами SQL на тестовой базе, мож 1С не поднимется.

Об этом наверное знают на форуме и в поддержке 1С
4 июл 13, 12:15    [14521334]     Ответить | Цитировать Сообщить модератору
 Re: Связка 1С и SQL как оценить качество  [new]
Bol
Member

Откуда:
Сообщений: 1427
А средствами SQL можно проиндексировать? На тесте то я могу делать что хочу
4 июл 13, 12:17    [14521356]     Ответить | Цитировать Сообщить модератору
 Re: Связка 1С и SQL как оценить качество  [new]
Glory
Member

Откуда:
Сообщений: 104751
Bol
А средствами SQL можно проиндексировать?

В смысле ? Все индексы в MSSQL созданы средставами MSSQL
4 июл 13, 12:19    [14521375]     Ответить | Цитировать Сообщить модератору
 Re: Связка 1С и SQL как оценить качество  [new]
Bol
Member

Откуда:
Сообщений: 1427
Glory
Bol
а вот результат - помогите понять все ли нормально со статистикой и индексами

sys.dm_db_missing_index_groups - это _отсутствующие_ по мнению оптимизатора индексы


странно - в этих таблицах вроде как отмечено что поля проиндексированны, а оптимизатор считает что нет
4 июл 13, 12:22    [14521397]     Ответить | Цитировать Сообщить модератору
 Re: Связка 1С и SQL как оценить качество  [new]
Bol
Member

Откуда:
Сообщений: 1427
то есть открываю контсруктор таблиц в MSSQL и смотрю
4 июл 13, 12:23    [14521404]     Ответить | Цитировать Сообщить модератору
 Re: Связка 1С и SQL как оценить качество  [new]
Glory
Member

Откуда:
Сообщений: 104751
About the Missing Indexes Feature

When the query optimizer generates a query plan, it analyzes what are the best indexes for a particular filter condition. If the best indexes do not exist, the query optimizer generates a suboptimal query plan, but still stores information about these indexes. The missing indexes feature enables you to access information about these indexes so you can decide whether they should be implemented.
4 июл 13, 12:25    [14521424]     Ответить | Цитировать Сообщить модератору
 Re: Связка 1С и SQL как оценить качество  [new]
Bol
Member

Откуда:
Сообщений: 1427
Аха - именно так... решайте сами думайте сами - иметь или неиметь)
4 июл 13, 12:31    [14521476]     Ответить | Цитировать Сообщить модератору
 Re: Связка 1С и SQL как оценить качество  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
с другой стороны тщательно предусмотрите то, что при чрезмерно большой индексации всего подряд вы имеете все шансы сильно просесть на апдейтах, делетах и инсертах для вашей БД.
4 июл 13, 12:36    [14521522]     Ответить | Цитировать Сообщить модератору
 Re: Связка 1С и SQL как оценить качество  [new]
Bol
Member

Откуда:
Сообщений: 1427
Да нет - странно то что все эти поля проиндексированны средствами 1C по умолчанию
Я проверил - там составной индекс из нескольких полей. Сейчас сделаю реиндексацию таблиц всей базы. Обновление статистки, очистку процедурного кэша и перестройку индексов средствами SQL делал уже. Создал на ночь такой джоб, но прирост составил процентов 10
4 июл 13, 12:40    [14521556]     Ответить | Цитировать Сообщить модератору
 Re: Связка 1С и SQL как оценить качество  [new]
Glory
Member

Откуда:
Сообщений: 104751
Bol
Я проверил - там составной индекс из нескольких полей.

Вы сравнили скрипт создания индекса с результатом вашего запроса ?
4 июл 13, 12:42    [14521578]     Ответить | Цитировать Сообщить модератору
 Re: Связка 1С и SQL как оценить качество  [new]
Bol
Member

Откуда:
Сообщений: 1427
Нет - есть обработка 1С в которой отображается соответствие между 1С объектами и таблицами/полями MSSQL там же отмечена индексация, это как я и думал таблицы, формирующие объект 1С так называемый регистр хозрасчетный. И наибольшая нагрузка идет именно на один элемен - таблицу ЗначенияСубконто, что понятно почему - индексация таблиц этих объектов выполняется средствами 1С платформы принудительно и нет возможности там ее отменять или назначать - а как посмотреть индексы конкретной таблицы запросом в MSSQL?
4 июл 13, 12:57    [14521734]     Ответить | Цитировать Сообщить модератору
 Re: Связка 1С и SQL как оценить качество  [new]
Bol
Member

Откуда:
Сообщений: 1427
Вынужден на часа 1.5 отвлечься от темы обсуждения - за помощь любую респект
4 июл 13, 12:59    [14521752]     Ответить | Цитировать Сообщить модератору
 Re: Связка 1С и SQL как оценить качество  [new]
Glory
Member

Откуда:
Сообщений: 104751
Bol
Нет - есть обработка 1С в которой отображается соответствие между 1С объектами и таблицами/полями MSSQL там же отмечена индексация, это как я и думал таблицы, формирующие объект 1С так называемый регистр хозрасчетный. И наибольшая нагрузка идет именно на один элемен - таблицу ЗначенияСубконто, что понятно почему - индексация таблиц этих объектов выполняется средствами 1С платформы принудительно и нет возможности там ее отменять или назначать - а как посмотреть индексы конкретной таблицы запросом в MSSQL?

Вы из 1с хотите рулить MSSQL-ем или из MSSQL-я рулить 1С ?
4 июл 13, 13:06    [14521817]     Ответить | Цитировать Сообщить модератору
 Re: Связка 1С и SQL как оценить качество  [new]
Зарегался
Member

Откуда:
Сообщений: 56
Bol,

У вас тормозит какой-то конкретный запрос или в принципе любые обращения к таблице значений субконто? Дело в том, что запросы на языке 1С с реквизитами составного типа (к которым относится и субконто) нужно уметь писать. Кривым запросам индексами вряд ли поможешь.
4 июл 13, 14:16    [14522329]     Ответить | Цитировать Сообщить модератору
 Re: Связка 1С и SQL как оценить качество  [new]
Bol
Member

Откуда:
Сообщений: 1427
Запрос написан сложный для построения произвольных отчетем с использованием средств 1С и оптимизирован (специалисты хороший и разбираются ) работает многократно и время выполнения возросло до 26 мин по сравнению с началом года. Конечно и данных больше стало - размер базы 120 Гб. Задача - найти узкое место. Сисадминов прошу выполнить нагрузочное тестирование сервера. Сам смотрю в сторону оптимизации запроса - например там нашлась возможность сократить период (оказалось данные за два периода раз в год формируются) и это уже в 3 раза почти ускорило запрос. Хочу понять - как я могу увидеть в SQL индексы, созданные платформой, чтобы понять их соответствие объектам в 1С
4 июл 13, 14:34    [14522496]     Ответить | Цитировать Сообщить модератору
 Re: Связка 1С и SQL как оценить качество  [new]
Bol
Member

Откуда:
Сообщений: 1427
нашел блин - слона не заметил
4 июл 13, 14:41    [14522558]     Ответить | Цитировать Сообщить модератору
 Re: Связка 1С и SQL как оценить качество  [new]
Glory
Member

Откуда:
Сообщений: 104751
Bol
Запрос написан сложный для построения произвольных отчетем с использованием средств 1С

Тогда вам в форум по 1С

Bol
Хочу понять - как я могу увидеть в SQL индексы, созданные платформой, чтобы понять их соответствие объектам в 1С

Например, запросом к системного представлению с _существующими_ индексами - sys.indexes, sys.index_columns
4 июл 13, 14:44    [14522580]     Ответить | Цитировать Сообщить модератору
 Re: Связка 1С и SQL как оценить качество  [new]
Зарегался
Member

Откуда:
Сообщений: 56
Bol
Запрос написан сложный для построения произвольных отчетем

"Произвольных" скорее всего означает возможность явных и неявных джойнов по полям составного типа, что при трансляции запроса в SQL приводит к соединению с таблицей каждого типа, входящего в составной. Помимо "головной боли" для оптимизатора запросов, это может приводить к избыточным чтениям из таблиц, которые не содержат полезных данных, но могут быть весьма объемными.
Так же есть подводные камни в указании параметров запроса. Более подробно здесь: тынц
4 июл 13, 19:18    [14524366]     Ответить | Цитировать Сообщить модератору
 Re: Связка 1С и SQL как оценить качество  [new]
Зарегался
Member

Откуда:
Сообщений: 56
З.Ы. Да, и помониторьте нагрузку на tempdb во время выполнения запроса. Высокая нагрузка обычно указывает на то, что во временные таблицы явно или неявно льются избыточные данные.
4 июл 13, 19:23    [14524376]     Ответить | Цитировать Сообщить модератору
 Re: Связка 1С и SQL как оценить качество  [new]
Bol
Member

Откуда:
Сообщений: 1427
Всем спасибо за искреннее участие). Да проблема конечно в том, что запрос иногда строится так, что из кластерного индекса поля выбираются не по порядку. А индексация полей отдельно в данной совокупности (1с ники поймут наверно) к сожалению в конфигураторе невозможна для бухгалтерских регистров. В результате когда не попадаем в кластерный индекс запрос работает как простой перебор (.
2 авг 13, 15:05    [14654525]     Ответить | Цитировать Сообщить модератору
 Re: Связка 1С и SQL как оценить качество  [new]
VladimirKr
Member

Откуда: СПб
Сообщений: 1062
Bol
... А индексация полей отдельно в данной совокупности (1с ники поймут наверно) к сожалению в конфигураторе невозможна для бухгалтерских регистров. В результате когда не попадаем в кластерный индекс запрос работает как простой перебор (.


Я в таких случаях строю дополнительные индексы средствами SQL. 1C это терпит. Как и добавление в существующие индексы включенных столбцов. Правда, при изменении структуры таблицы конфигуратором или при выгрузке/загрузке ИБД индекс слетает, приходится создавать опять.
2 авг 13, 23:41    [14657097]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить