1С + SQL запросы (оптимизация) #102267


#0 by ablinka
Есть несколько баз (1С переведенных в SQL), если база маленькая SQL запрос работает быстро, если база большая (11 тыс записей), то запрос работает очень долго, может можно как нибудь оптимизировать работу запроса. Сервер MS SQL Server 2000.
#1 by Gary
Для начала рекомендую посмотреть диск ИТС - методические материалы, там разжевано чуток. А после того как и это перестанет нравиться - ставьте ToySQL.
#2 by Туxлый
Делается с помощью внешних компонент влет. А 11000 записей - это большая база?
#5 by BigHarry
11 тыс.записей - это тьфу...Хотя - неграмотным запросом можно сервер заставить колупаться два часа в двух записях.Вы бы хоть текст запроса показали...
#6 by КонецЦикла
2 При таком (!?) количестве записей нечего заморачиваться... или это строк в отчете столько?нужно просто оптимизировать запрос или вот так:
#7 by OFF
Яндекс в помощь по ToySQLЗЫ. "mySQL? то 1С с ним не работает" - Адо, мудо, Оле оле оле уже отменили?????
#9 by Туxлый
запрос оптимизируй SC3772.DESCR LIKE 'Розничная' мона поменять на равенство с ид оъекта,SELECT MAX(_1SCONST.[DATE])                            FROM _1SCONST                            WHERE (_1SCONST.OBJID = SC3772.ID) AND (_1SCONST.ID LIKE '%3775%')) - это че за фигня?SC33 SC1 - об этом поподробнее
#10 by Джинн
Да уж :)))) Чудный запрос!Может для начала запросы научиться ПИСАТЬ, а затем уже их ОПТИМИЗИРОВАТЬ?Такой запрос уложить любой сервер на лопатки в два счета.Даже сложно представить себе объем произведения строк из пяти таблиц.
#11 by Денис2
Из запроса убрать все LIKE, заменив на равенство. Убрать ltrim(rtrim), заменив на равенство. Эта фигня - просто выборка периодического значения, тут все нормально.Лучше всего посмотреть план запроса, чтобы знать, где тормозит.
#12 by Джинн
То 11. Да какой уж тут план! На FROM SC5310, SC5461, SC33 SC1, SC3772, _1SCONST у компилятора крыше съедет :)То 0. Срочно читать про join в book online.
#14 by Денис2
С какого съедет-то? Все нормально, таблицы объединяются по полям. Вопрос в том, насколько эффективно объединяются.
#15 by Денис2
В QUery Analizer - Query / Show Execution Plan
#16 by Джинн
То 14. Что нормального то? Ты представляешь сколько нужно переворотить информации, чтобы это сделать? По сути сделать произведение из всех таблиц и потом отобрать нужное?
#19 by Джинн
То 18. Все базы хранят данные в массе таблиц :) Но для их получения нет необходимости делать декартово произведение. Из таблиц выбираются только связанные данные. Для этого применяются join, которые отсекают ненужное на этапе формирования набора данных. Кроме того, оптимизатор запроса, обнаруживая join пытается применить к "связаным" полям индексы.
#20 by Эстет хренов
Ты убьешь базу,сформируй промежуточное хранилище данных средствами 1с - служебный справочник или таблица на сервере.
#21 by Денис2
А ты представляешь, КАК работает SQL Server? Что такое оптимизатор запросов? Он ведь не делает сначала произведение таблиц... Он сразу фильтрует. и в плане запроса все это видно.
#22 by Джинн
То 21. Ну-ну :)
#24 by Денис2
ЧТо нуну? Сам я с таким сталкивался, когда запрос выдавал 150 000 строк. Приходилось искать пути оптимизации. ЗАпрос выглядел подобно вышеприведенному, но работал хорошо :-) Основное время тратилось на перекачку результатов с с ервера на локльную машину :-)
#25 by Джинн
То 24. А я не сталкивался. Потому что в молодости по рукам били за кривые запросы :) И учили не давать все на откуп компилятору, оптимизатору запросов (который у Билли лучший на рынке) и ресурсам сервера.То 23. Все же рекомендую переписать запрос кардинально. "Залетает" еще быстрее.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С