Скорость выполнения запросов на внешних данных 1С 8.3 #697142


#0 by Darhon
Доброго времени суток. Подскажите пожалуйста, почему при выполнении из 1С запроса встроенными средствами или через ADO запросы выполняются очень медленно или вообще вешают наглухо комп. А при выполнении того же запроса например через  IBExpert(база Firebird) все выполняется за несколько секунд. Заранее благодарю.
#1 by Darhon
Кто сталкивался поделитесь опытом???
#2 by H A D G E H O G s
Берем обработку, в ней выводим время (в миллисекундах) отправки запроса, время завершения запроса, в профайлере sql смотрим время начала запроса, продолжительность, время окончания запроса. Возвращаемся с результатами сюда.
#3 by Darhon
какую обработку??? Подскажеет??
#4 by SanGvin
которую вы напишите. очевидно же.
#5 by Darhon
Запрос такого вида.... и как я узнаю в ней время??? Если при инициализации запроса обработка виснет наглухо, вместе с компом (
#6 by SanGvin
вы бухгалтер?
#7 by H A D G E H O G s
Вижу. Вижу. Вижу нехилый такой cross join.
#8 by Darhon
82 000 000 записей в таблице....остальные мельче :)
#9 by Darhon
Неет....я уборщица %) Просто за ком пустили на 10 минут :)
#10 by H A D G E H O G s
Добавь inner join и возвращайся.
#11 by H A D G E H O G s
Заметно.
#12 by МихаилМ
для ORACLE и ms sql (>2000) описание соединения в разделе условий - допустимо и эквивалентно inner join. так что и FB  такое может быть.
#13 by H A D G E H O G s
Согласен. Но я не вижу смысла рисковать.
#14 by МихаилМ
я тоже предпочитаю правила  соединения описывать в join
#15 by Darhon
До join  (выполнялось в IBExpert) ------ Информация о производительности ------ Время подготовки запроса = 16ms Время выполнения запроса = 998ms Среднее время на получение одной записи = 30,24 ms После: ------ Информация о производительности ------ Время подготовки запроса = 19ms Время выполнения запроса = 2s 871ms Среднее время на получение одной записи = 114,84 ms
#16 by Darhon
С inner join производительность упала.... :(
#17 by Darhon
Тем более а если запрос будет описан средствами встроенного конструктора запростов? Производительность еще более упадет?
#18 by МихаилМ
почти уверен, что  IBExpert не считывает весь рекордсет. а как ведет ВИД - не знаю. в ADO - настраивается
#19 by Darhon
А можно ли из 1С не считывать весь рекордсет?? Ведь ИБЕксперт тоже стороннее приложение для базы как и 1С ...
#20 by Darhon
Как настраивается? :)
#21 by МихаилМ
+ еще много зависит от драйвера. помню. кому-то на этом форуме очень помогла смена драйвера FB
#22 by МихаилМ
читайте документацию к RECORDSET.
#23 by H A D G E H O G s
Это ты сейчас про тип курсора?
#24 by Зойч
скорее всего IBExpert выбирает TOP сколько-то, а адо - все
#25 by Зойч
что-то вроде динамического списка
#26 by МихаилМ
нет. насколько я помню, по умолчанию (oledb или ado) выбирается то ли 50 000 записей, то ли 50 мегабайт.
#27 by Darhon
что-то я не нашел такого в свойствах recordset-а
#28 by МихаилМ
CacheSize
#29 by Darhon
На вскидку какое оптимальное значение? По умолчанию же 1??
#30 by МихаилМ
на вскидку  - 30 000. но вопрос из серии "сколько записей записывать в одной вложенной транзакции ". однозначного ответа  нет.
#31 by Darhon
Оук спасибо, следующая проблема.... вот: Виснет на мертво....на IBExperte 3-4 секунды, на 1С за 15 минут не выполнился :(( Как быть??
#32 by МихаилМ
анализируйте трассировки которые можно настроить в "Администратор источников данных ODBC"
#33 by Сисой
А зачем тебе перемножение таблиц OP_STATUS_ARCH и CHANNELS?
#34 by МихаилМ
5 таблиц был прав.
#35 by Darhon
где перемножение??
#36 by Darhon
блин...запрос висит в трассировку ОДБЦ ничего не пишется...
#37 by Сисой
Тебя кто учил писать запросы? Это вообще запрос двоечника.
#38 by Сисой
По какому условию связываются OP_STATUS_ARCH и CHANNELS?
#39 by zladenuw
то проще затащить отдельно таблицы в 1с и там уже соединять или как ?
#40 by Darhon
блин...не связываются, но не суть я думаю, в channels  всего 17 строк
#41 by Darhon
не ...точно не проще....они меняются в секунду по паре раз ((
#42 by Сисой
Так она еще и с остальными таблицами начинает перемножаться в плане запроса. Скорее всего.
#43 by Darhon
Добавил условие....
#44 by Сисой
Ждем результата.
#45 by Darhon
думает....
#46 by Darhon
Пустой результат...но быстрее ))
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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