Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / оптимизация запроса / 11 сообщений из 11, страница 1 из 1
06.04.2012, 17:33
    #37742379
n0ther
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация запроса
Помогите нубу. SQL мне говорит -

/*
Отсутствуют сведения об индексе из ExecutionPlan1.sqlplan
Обработчик запросов считает, что реализация следующего индекса может сократить стоимость запроса на 23.081%.
*/

/*
USE [1C81_UPP_Test]
GO
CREATE NONCLUSTERED INDEX [<Name of Missing Index, sysname,>]
ON [dbo].[_InfoReg16759] ([_Fld16760_TYPE],[_Fld16762RRef],[_Fld16763RRef])
INCLUDE ([_Fld16760_RTRef],[_Fld16760_RRRef],[_Fld16761RRef])
GO
*/

InfoReg16759 - регистр сведений объекты доступа документов ,
Fld16760 - измерение Объекты доступа
Fld16762 - измерение Область данных
Fld16763 - измерение Пользователь
Fld16761 - измерение Вид объекта доступа

Объект доступа, Пользователь и Владелец прав доступа - ведущие измерения регистра.

Что нужно сделать в 1С, чтобы реализовать "просьбу" SQL?
...
Рейтинг: 0 / 0
06.04.2012, 17:51
    #37742404
The Dim!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация запроса
Посмотрите в сторону встроенной процедуры 1С ПолучитьСтруктуруХраненияБазыДанных() она вернет сопоставление объектов методанных и структуры таблиц SQL. По нужному полю добавьте индекс.
...
Рейтинг: 0 / 0
06.04.2012, 17:51
    #37742406
The Dim!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация запроса
Индекс добавьте в конфигураторе.

В принципе, можно и в самом скуле, но тогда вы его потеряете при следующей реструктурезации БД.
...
Рейтинг: 0 / 0
06.04.2012, 17:59
    #37742420
n0ther
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация запроса
The Dim!Посмотрите в сторону встроенной процедуры 1С ПолучитьСтруктуруХраненияБазыДанных() она вернет сопоставление объектов методанных и структуры таблиц SQL. По нужному полю добавьте индекс.

Так вот вопрос, по какому полю "хочет" индекс sql?
...
Рейтинг: 0 / 0
06.04.2012, 18:07
    #37742432
n0ther
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация запроса
Fld16760 в 1Ске - поле составного типа, по нему индекс уже есть
...
Рейтинг: 0 / 0
07.04.2012, 09:40
    #37742829
rigus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация запроса
Никак не добавить, т.к. в 1с очень ограничена возможность создания нормальных индексов (составных, с покрытием и т.д.)
В общем вариантов 2.
1. Ждать и надеяться что в 1с поймут и реализуют подобное.
2. Сделать скрипт создания нужных индексов (статистики слава богу 1с не чистит при обновлении) добавить его в 1с и запускать после обновления конфигурации (в некоторых случаях у меня скорость запроса возрастала в 50-100 раз после создания нужного индекса)
...
Рейтинг: 0 / 0
09.04.2012, 15:53
    #37745354
n0ther
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация запроса
rigusНикак не добавить, т.к. в 1с очень ограничена возможность создания нормальных индексов (составных, с покрытием и т.д.)
В общем вариантов 2.
1. Ждать и надеяться что в 1с поймут и реализуют подобное.
2. Сделать скрипт создания нужных индексов (статистики слава богу 1с не чистит при обновлении) добавить его в 1с и запускать после обновления конфигурации (в некоторых случаях у меня скорость запроса возрастала в 50-100 раз после создания нужного индекса)

благодарю, попробую вариант 2
...
Рейтинг: 0 / 0
10.04.2012, 05:08
    #37746092
nifrit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация запроса
Дабы не плодить темы, апну эту. Есть проблема с запросом на 1с.


ВЫБРАТЬ
ФСС.Подразделение КАК Подразделение,
ФСС.Цех КАК Цех,
ФСС.Район,
ФСС.Регион,
ФСС.Ссылка КАК ФСС,
ПФР.Ссылка КАК ПФР,
Акты.Ссылка КАК Акты
ИЗ
Документ.ФСС КАК ФСС
ПОЛНОЕ СОЕДИНЕНИЕ Документ.АктыПроверок КАК Акты
ПО ФСС.Подразделение = Акты.Подразделение
И ФСС.Цех = Акты.Цех
И ФСС.Район = Акты.Район
И ФСС.Регион = Акты.Регион
ПОЛНОЕ СОЕДИНЕНИЕ Документ.ПФР_РСВ1_2012 КАК ПФР
ПО ФСС.Подразделение = ПФР.Подразделение
И ФСС.Цех = ПФР.Цех
И ФСС.Район = ПФР.Район
И ФСС.Регион = ПФР.Регион
ГДЕ
ФСС.База = &База
И ФСС.Год = &Год
И ФСС.Период = &Период
И ФСС.Подразделение = &Подразделение
И ФСС.Цех = &Цех
И ФСС.Район = &Район
И ФСС.Район.Регион = &Регион
И ФСС.Проверочный = &Проверочный
И ФСС.ТипСвода = &СсылкаТипСвода
И ФСС.Проверочный = ЛОЖЬ
И ПФР.База = &База
И ПФР.Год = &Год
И ПФР.Период = &Период
И ПФР.Подразделение = &Подразделение
И ПФР.Цех = &Цех
И ПФР.Район = &Район
И ПФР.Район.Регион = &Регион
И ПФР.Проверочный = &Проверочный
И ПФР.ТипСвода = &СсылкаТипСвода
И ПФР.Проверочный = ЛОЖЬ
И Акты.База = &База
И Акты.Год = &Год
И Акты.Период = &Период
И Акты.Подразделение = &Подразделение
И Акты.Цех = &Цех
И Акты.Район = &Район
И Акты.Район.Регион = &Регион
И Акты.Проверочный = &Проверочный
И Акты.ТипСвода = &СсылкаТипСвода
И Акты.Проверочный = ЛОЖЬ

УПОРЯДОЧИТЬ ПО
Подразделение,
Цех


Суть запроса - вытащить в одну строку данные о подразделении, а так же ссылки на документы удовлетворяющим условиям. Проблема в том, что если нет хотя бы одного документа - результат запроса - пустая ТЗ. Подскажите что подправить, либо сделать проверку, что бы если документа нет - пусть в колонке будет пустое значение.
На скрине пример когда существую все 3 документа.
...
Рейтинг: 0 / 0
10.04.2012, 05:36
    #37746095
rigus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация запроса
Условия ГДЕ - превращают ваши полные соединения во внутренние, перенесите условия в в секции по +
в секции выбрать одинаковые реквизиты из разных источников использовать ЕСТЬNULL() чтобы вывести не пустое значение
...
Рейтинг: 0 / 0
10.04.2012, 10:16
    #37746259
olegves
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация запроса
Поля Подразделение, Цех, Район и Регион надо получать через ф-ю IsNull(Табл1.Цех,IsNull(Табл2.Цех,Табл3.Цех)) - по остальным аналогично и в блоке ГДЕ для сравнения с параметрами использовать эти же выражения
...
Рейтинг: 0 / 0
11.04.2012, 04:55
    #37747809
nifrit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация запроса
Большое спасибо, объединив эти 2 ответа с переносом условий в секцию "ПО" и с кучей проверок на NULL все заработало.
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / оптимизация запроса / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]