|
Postgre ??? Простейший запрос висит |
☑ |
0
tixis
17.12.14
✎
13:30
|
Добрый день, подскажите по постгре. Ситуация: Запрос
ВЫБРАТЬ
АктуальныеЦены.Номенклатура,
АктуальныеЦены.Номенклатура.Код КАК Код,
АктуальныеЦены.Цена,
АктуальныеЦены.ЕдиницаИзмерения,
ЕСТЬNULL(СтарыеЦены.Цена, 0) КАК ЦенаСтарая,
ЕСТЬNULL(СтарыеЦены.ЕдиницаИзмерения, 0) КАК ЕдиницаИзмеренияСтарая
ИЗ
РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&КонДата, ТипЦен = &ТипЦен {(Номенклатура).* КАК Номенклатура, (ТипЦен).* КАК ТипЦен}) КАК АктуальныеЦены
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&НачДата, ТипЦен = &ТипЦен {(Номенклатура).* КАК Номенклатура, (ТипЦен).* КАК ТипЦен}) КАК СтарыеЦены
ПО АктуальныеЦены.Номенклатура = СтарыеЦены.Номенклатура
И АктуальныеЦены.ЕдиницаИзмерения = СтарыеЦены.ЕдиницаИзмерения
И АктуальныеЦены.ТипЦен = СтарыеЦены.ТипЦен
В постгре висит очень долго, даже не дождался завершения работы, в sql выполнился быстро. Платформа 8.1. Это из за нсатроек постгре или из за чего?
|
|
1
ssh2QQ6
17.12.14
✎
13:36
|
не знаю особенностей постгре на практике, ну сделай через временные таблицы
|
|
2
ansh15
17.12.14
✎
13:49
|
|
|
3
Gepard
17.12.14
✎
14:04
|
(0) а после установки ему было разрешено использовать больше 30Мб? )
|
|
4
thezos
17.12.14
✎
14:11
|
(1) Конечно же в настройке постгреса.
|
|
5
pmb
17.12.14
✎
14:19
|
(0) на Postgree луше не использовать срезпоследних
|
|
6
pmb
17.12.14
✎
14:20
|
(5) где-то на ИТС есть статья. Переписывате запрос без виртуальной таблицы СрезПоследних
|
|
7
tixis
17.12.14
✎
14:22
|
Всем спасибо, сейчас проверю все варианты
|
|
8
pmb
17.12.14
✎
14:22
|
(7) убирай срез последних - без вариантов )
|
|
9
Chai Nic
17.12.14
✎
14:23
|
Левое соединение с виртуальной таблицей == левое соединение с подзапросом == nested loop без вариантов == тормоза
|
|
10
Chai Nic
17.12.14
✎
14:24
|
Пихай срез во временную таблицу и соединяй с ней по индексированному полю
|
|
11
cons74
17.12.14
✎
14:35
|
(6)
Оптимизация использования виртуальной таблицы СрезПоследних при работе с PostgreSQL
Проблема
При работе с PostgreSQL использование соединения с виртуальной таблицей СрезПоследних может приводить к существенному снижению производительности. Из-за ошибки оптимизатора может быть выбран неоптимальный план выполнения запроса.
Решение
Если в запросе используется соединение с виртуальной таблицей языка запросов "1С:Предприятия" СрезПоследних и запрос работает с неудовлетворительной производительностью, то рекомендуется вынести обращение к виртуальной таблице в отдельный запрос с сохранением результатов во временной таблице.
|
|
12
an-korot
17.12.14
✎
14:38
|
странный запрос, обращаться 2 раза к 1 таблице вторым запросом внутри 1, удивляюсь почему скуэль не тормозит )) наверняка на несколько секунд задумывается...
сделай 2 запроса и обеденить все.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший