#0
by zladenuw
есть такой запрос "ВЫБРАТЬ | Авто.Ссылка, если заменить подобно на равно, запрос выполняется за секунды 2. если подобно, очень при очень долго. как ускорить ?
#4
by zladenuw
там опятка. там список Авто :). которые есть в базе. и есть сервисные акции. где много разных авто. и при заезде авто нужно проверить или есть на него сервисная акция. по этому вин код храним строкой. если есть такой автомобиль то ссылка на авто
#6
by AaNnDdRrEeYy
зачем тут вообще подобно? СервисныеАкции.Авто (это ссылка) ПОДОБНО СписокФирм.Кузов (и это ссылка) как поведет себя "подобно" если применять его к ссылкам?
#9
by SanGvin
тогда зачем написал "СервисныеАкции.Авто ПОДОБНО СписокФирм.Кузов" ? Поле "Авто" - это ж ссылка
#10
by zladenuw
не Ссылка. в написал же. что если есть такой автомобиль в базе, то там ссылка. если нет то строка.
#11
by AaNnDdRrEeYy
у вин номеров последнии 6 цифр уникальны. от них прыгай. там можно не подобно применять а к подстроке на равно условие сделать
#12
by zladenuw
попробую. хотя вроде нет. в каких то символах заложена модель. может по последнем найти,а вот первый ключ будет отличатся. или делать двойное условие с проверкой на равенство последних. если равно то смотрим весь код или так не взлетит ?
#13
by SanGvin
ну в любом случае условия в соединение пиши, а не в где. И проверь, на сколько быстрее станет. СервисныеАкции.ТвоеПоле1, СписокФирм.ТвоеПоле2 ИЗ КОГДА СервисныеАкции.Авто ССЫЛКА Справочник.Авто ТОГДА СервисныеАкции.Авто = СписокФирм.Ссылка ИНАЧЕ СервисныеАкции.Авто ПОДОБНО СписокФирм.Кузов КОНЕЦ еще идею из попробуй, тоже ускорить должно процесс.
#14
by GANR
Как угодно избавиться от этого ПОДОБНО - при таком сравнении индексы идут лесом и сканируется вся таблица (table scan), что и является тормозящей операцией в плане запроса.
#15
by zladenuw
да так и сделал. жду вот. крутится запросы еще. все равно долго. только конструкция подобно и можно идти пить что то. в прошлый раз до 6 часов выполнялось. ужас. может где то ограничение на самом сервере постгреса на объем запроса или это не при чем
#16
by zladenuw
тогда проще в фоне ночью, обрабатывать этот регистр и убивать лишение символы в поле. и использовать конструкцию =
#19
by GANR
+ И еще, что будет если заменить ВЫБОР КОГДА в секции ГДЕ на ОБЪЕДИНИТЬ ВСЕ и 2 запроса с разными условиями соединения? Не побыстрее стало? А может можно как-то методически решить вопрос - подогнать данные таким образом, чтобы эта самая операция = стала применима или вообще перейти на сравнение по Ссылке?
#20
by GANR
А нельзя ли как-то уменьшить размер левой или правой таблицы? Так, хоть и без индексов, но количество сравнений будет меньше.
#21
by zladenuw
разделить выбор. выбрать где есть ссылка и вывести и отдельно где строка и так же вывести. попробую так поигратся
#24
by GANR
Да-да... И еще при сравнении по ПОДОБНО во второй таблице ОБЪЕДИНИТЬ ВСЕ надо-бы перед проверкой этого подобно убедиться, что в проверяемых полях именно строка ТИПЗНАЧЕНИЯ(СервисныеАкции.Авто) = ТИП(Строка), иначе - не проверять.
#26
by zladenuw
а разве такое условие это не проверяет ВЫБОР КОГДА СервисныеАкции.Авто ССЫЛКА Справочник.Авто КОНЕЦ
#27
by zladenuw
и самое интересное то что если условие то быстрее 1668, а соединение 1751. хотя ведь соединение должно быть быстрее
#28
by zladenuw
ура. нашел как обмануть. так выполняет 0.94 ВЫБРАТЬ Авто.Ссылка, ГДЕ СервисныеАкции.Авто ССЫЛКА Справочник.Авто ОБЪЕДИНИТЬ ВСЕ ГДЕ НЕ СервисныеАкции.Авто ССЫЛКА Справочник.Авто
#30
by zladenuw
такой вопрос. сначала будет выполнена конструкция где или сначала соединение и потом где ?
#31
by zladenuw
можно идти отдыхать. литает запрос. с условием и конструкцией подобно по автомобилям до 1 секунды, без условия 3 секунды. ГДЕ СервисныеАкции.Авто ССЫЛКА Справочник.Авто ГДЕ СервисныеАкции.Авто ССЫЛКА Справочник.Авто ВНУТРЕННЕЕ СОЕДИНЕНИЕ СписокАвто КАК СписокАвто ПО (СписокАкций.Авто ПОДОБНО СписокАвто.Кузов) Но есть вопрос к знатокам запросов. почему так работает быстрее, если использовать вложенные запросы ? чем можно увидеть какой запрос уходить на сервер субд ?
#32
by GANR
А попробуй посмотреть на план запроса, предварительно выловив его в MS SQL Profiler и заменив параметры в запросе прямыми указаниями значений. Вообще, имхо, надо попросту перепроектировать структуру данных так, чтобы не было надобности в этих часто использующихся ПОДОБНО - эта операция без какого-то специализированного индекса полнотекстового поиска полюбому приведет к полному сканированию всей таблицы, да еще в цикле, если это соединение.
#35
by GANR
Избегать конструкции ПОДОБНО (LIKE) При работе с отборами удобно выполнять поиск контрагента не по наименованию, а путем установки отбора по условию «Содержит» по полю «Наименование». Однако это отрицательно сказывается на производительности из-за невозможности использования индексов и так приводит к запросам: ВЫБРАТЬ .. ИЗ Справочник.Контрагенты ГДЕ Наименование ПОДОБНО «%СтрокаПоиска%» В таком запросе будет выполнен полный перебор всех записей таблицы. Это отрицательно сказывается на производительности. П р и м е ч а н и е. В последних версиях MS SQL Server LIKE стал уметь в некоторых случаях использовать поиск, но это все равно не лучший оператор. Так что, возможно MS SQL 2008 - 2013 спасут ситуацию без реструктуризаций данных.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Быстрая пометка на удаление документов
- Почему не выгружаются сведения отпуска по уходу за ребенком
- ЗУП выгрузка проводок в БП по алиментам
- Как передать фокус между элементами управляемой формы?
- Регламентное задание + Завершить работу системы
- клиентские лицензии с программной защитой или аппаратной защитой? что выбрать?
- Ошибка- не заполнено субконто
- Что покурить по тестированию ПО?
- Изменение владельца у характеристики номенклатуры
- СКД. Как выводить суммы без пробелов
- Спецам по УАТ. Есть вопрос
- Библиотека стандартных подсистем под обычные формы
- не заполнен регистр сведений "учетная политика налоговый учет"
- Не работает ограничение на уровне записей по шаблонам
- Мобильная платформа 1С + Аппаратный сканер ШК
- Налог на прибыль в УПП для обособленных подразделений
- Получение печатной формы в тонком клиенте
- СКД скрыть группировку функциональной опцией
- как обмануть функциональную опцию?
- Проблемы с выводом подчиненного иерархического справочника в отчете