Переключение на Главную Страницу Страницы: 1 2 [3] 4 5  ОтправитьПечать
Очень популярная тема (более 25 ответов) Выгрузка из ТЗ во временную таблицу (курсор) (число прочтений - 22489 )
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Выгрузка из ТЗ во временную таблицу (курсор)
Ответ #30 - 11. Октября 2007 :: 16:10
Печать  
Что то совсем странные вещи заметил с параметризованными запросами :

Простое уничтожение объекта
Код
Выбрать все
ОлеДБКоманда=0;
 

Длится 9 сек !!! Это после интенсивной работы с параметризованной вставкой ОлеДБКоманда.

И еще сегодня http://www.1cpp.ru/forum/YaBB.pl?num=1192009673 c Exel параметризованный запрос не заработал.

Новые  исправления связаны и с этим тоже ?
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выгрузка из ТЗ во временную таблицу (курсор)
Ответ #31 - 11. Октября 2007 :: 16:28
Печать  
Скорее всего это время тратится на освобождение памяти. Как раз в этом и весь замес.
Новых исправлений еще нет в репозитарии (и сессно в сборках).
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выгрузка из ТЗ во временную таблицу (курсор)
Ответ #32 - 11. Октября 2007 :: 16:39
Печать  
Я тут чуток шашкой помахал и вот получилось так:
Цитата:
Кол-во строк: 100000
Запрос вставки (парам. запросом):
- 2.289 сек.
- 2.312 сек.
- 2.293 сек.

Запрос вставки (без парам. запроса):
- 3.319 сек.
- 3.34 сек.
- 3.327сек.


Тест прилагается.
  

InsertingTest_001.ert ( 8 KB | Загрузки )
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выгрузка из ТЗ во временную таблицу (курсор)
Ответ #33 - 11. Октября 2007 :: 17:29
Печать  
Сборка 1с++ 203x
  

1CPP_203x.rar ( 431 KB | Загрузки )
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выгрузка из ТЗ во временную таблицу (курсор)
Ответ #34 - 11. Октября 2007 :: 17:30
Печать  
Сборка 1с++ 25xx
  

1CPP_25xx.rar ( 384 KB | Загрузки )
Наверх
ICQ  
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Выгрузка из ТЗ во временную таблицу (курсор)
Ответ #35 - 12. Октября 2007 :: 05:28
Печать  
kiruha писал(а) 11. Октября 2007 :: 16:10:
Что то совсем странные вещи заметил с параметризованными запросами :

Простое уничтожение объекта
Код
Выбрать все
ОлеДБКоманда=0;
 

Длится 9 сек !!! Это после интенсивной работы с параметризованной вставкой ОлеДБКоманда.

И еще сегодня http://www.1cpp.ru/forum/YaBB.pl?num=1192009673 c Exel параметризованный запрос не заработал.

Новые  исправления связаны и с этим тоже ?


А у меня такой код
Код
Выбрать все
СтрокаСоединения = "Driver={MySQL ODBC 3.51 Driver};Server=localhost;
|Port=3306;Database=_1c;User=_user; Password=_pass;
|Option=3;"
дБД = СоздатьОбъект("ODBCDataBase");
Результат = дБД.Соединение(СтрокаСоединения);
дБД="";
 

длится 5 сек с лишним, причем запросы к базе работают и быстро, но вот именно закрытие соединения занимает эти самые 5 сек Печаль
  
Наверх
ICQ  
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Выгрузка из ТЗ во временную таблицу (курсор)
Ответ #36 - 12. Октября 2007 :: 05:45
Печать  
Кстати, по поводу вставки... А если попробовать prg-файлы применить? Написать процедуру вставки, в которую передавать данные полей сразу для 10 (например) строк. Тогда запрос вставки будет выглядеть как вызов процедуры с передачей параметров сразу для 10 строк. Один запрос - вставка 10 строк. prg-файлик можно генерить автоматически.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Выгрузка из ТЗ во временную таблицу (курсор)
Ответ #37 - 12. Октября 2007 :: 07:04
Печать  
Для OLE DB с параметром выдает ошибку
ОлеДБКоманда.Подготовить(ТекстЗапроса);
{Отчет.sqlite_1c.Форма.Модуль(645)}: FAILED! IAccessor::CreateAccessor() [One or more accessor flags were invalid]: Недопустимый клиент доступа.
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выгрузка из ТЗ во временную таблицу (курсор)
Ответ #38 - 12. Октября 2007 :: 07:14
Печать  
Цитата:
Недопустимый клиент доступа.

http://www.1cpp.ru/forum/YaBB.pl?num=1148038411/19#19
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Выгрузка из ТЗ во временную таблицу (курсор)
Ответ #39 - 12. Октября 2007 :: 07:27
Печать  
spock писал(а) 12. Октября 2007 :: 07:14:
Цитата:
Недопустимый клиент доступа.

http://www.1cpp.ru/forum/YaBB.pl?num=1148038411/19#19

спасибо  теперь работает
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Выгрузка из ТЗ во временную таблицу (курсор)
Ответ #40 - 12. Октября 2007 :: 07:27
Печать  
версия 2.5.0.4

с параметром Запрос вставки sqlite  78.48с
Запрос выборки длился 0.088с
Кол строк 20000

без параметра Запрос вставки 4.186с
sqlite без параметризации Запрос выборки длился 0.08с
Кол строк 20000

Запрос вставки  OLE DB без парамтров 2.996с
Запрос выборки длился 0.134с
Кол строк 20000

Запрос вставки OLE DB c параметром 0.964с
Запрос выборки длился 0.966с
Кол строк 20000

версия 2.5.0.4 ex из этой ветки

Запрос вставки sqlite с параметром 78.509с
Запрос выборки длился 0.077с
Кол строк 20000

без параметра Запрос вставки 4.097с
sqlite без параметризации Запрос выборки длился 0.08с
Кол строк 20000

Запрос вставки  OLE DB без парамтров 3.009с
Запрос выборки длился 0.133с
Кол строк 20000


Запрос вставки OLE DB c параметром 0.581с
Запрос выборки длился 0.129с
Кол строк 20000


ТЕст spock
версия 2.5.0.4
Запрос вставки (парам. запросом): 9.362сек.
Кол-во строк: 100000
Запрос вставки (без парам. запроса): 3.925сек.
Кол-во строк: 100000
версия 2.5.0.4 ex из этой ветки
Запрос вставки (парам. запросом): 2.639сек.
Кол-во строк: 100000
Запрос вставки (без парам. запроса): 3.899сек.
Кол-во строк: 100000
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выгрузка из ТЗ во временную таблицу (курсор)
Ответ #41 - 12. Октября 2007 :: 07:35
Печать  
Цитата:
версия 2.5.0.4  
...
Запрос вставки OLE DB c параметром 0.964с
Кол строк 20000
...
версия 2.5.0.4 ex из этой ветки  
...
Запрос вставки OLE DB c параметром 0.581с
Кол строк 20000


И

Цитата:
версия 2.5.0.4  
Запрос вставки (парам. запросом): 9.362сек.
Кол-во строк: 100000
...
версия 2.5.0.4 ex из этой ветки
Запрос вставки (парам. запросом): 2.639сек.
Кол-во строк: 100000


Про свой тест я в курсе, а что в другом тесте? А то у меня как-то корреляция не складывается..
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выгрузка из ТЗ во временную таблицу (курсор)
Ответ #42 - 12. Октября 2007 :: 07:37
Печать  
Uzhast писал(а) 12. Октября 2007 :: 05:45:
Кстати, по поводу вставки... А если попробовать prg-файлы применить? Написать процедуру вставки, в которую передавать данные полей сразу для 10 (например) строк. Тогда запрос вставки будет выглядеть как вызов процедуры с передачей параметров сразу для 10 строк. Один запрос - вставка 10 строк. prg-файлик можно генерить автоматически.

Ой, не нравится мне все это Улыбка
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Выгрузка из ТЗ во временную таблицу (курсор)
Ответ #43 - 12. Октября 2007 :: 07:48
Печать  
spock писал(а) 12. Октября 2007 :: 07:35:
Про свой тест я в курсе, а что в другом тесте? А то у меня как-то корреляция не складывается..


версия 2.5.  стандартная
Запрос вставки OLE DB c параметром 0.964с ( Кол строк 20000 )

версия 2.5.0.4 ex из этой ветки
Запрос вставки OLE DB c параметром 0.581с ( Кол строк 20000 )

улучшение почти в два раза.
---------------------------------------
Для  бд sqlite цифры теже в пределах погрешности.
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выгрузка из ТЗ во временную таблицу (курсор)
Ответ #44 - 12. Октября 2007 :: 07:58
Печать  
А куда эти 20 тыс строк вставляются так реактивно?
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 [3] 4 5 
ОтправитьПечать