Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Проблема с 1sqlite (число прочтений - 1911 )
filh
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 36
Зарегистрирован: 23. Августа 2010
Проблема с 1sqlite
08. Ноября 2010 :: 06:52
Печать  
Есть запрос:

Код
Выбрать все
|SELECT
|    Р.Номенклатура  [аНоменклатура :Справочник.аНоменклатура],
|    Р.Количество * (1 - Р.debkred * 2)  Количество
|FROM
|    [Регистр.аДнейВАренде]  Р
|INNER JOIN
|    [Журнал] Жур ON Р.iddoc = Жур.iddoc
|	  AND Жур.date BETWEEN :НачДата And :КонДата
|WHERE
|    Р.Номенклатура = :ВыбаНоменклатура"; 



НачДата = 01.01.07, КонДата = Дата ТА.
Время выполнения в терминале 9 секунд. Всего записей в регистре 1905. Аналогичный запрос на фоксе выполняется 0.03 сек.
Версия 1sqlite 1,0,2,4
Как уменьшить время выполнения запроса?
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Проблема с 1sqlite
Ответ #1 - 08. Ноября 2010 :: 07:23
Печать  
Так попробуй:
Код
Выбрать все
|SELECT
|    Р.Номенклатура  [аНоменклатура :Справочник.аНоменклатура],
|    Р.Количество * (1 - Р.debkred * 2)  Количество
|FROM
|    [Регистр.аДнейВАренде]  Р
|LEFT JOIN
|    [Журнал] Жур ON Р.iddoc = Жур.iddoc
|WHERE
|    Р.Номенклатура = :ВыбаНоменклатура
|	  AND Жур.date BETWEEN :НачДата And :КонДата"; 



А еще лучше - поставь галку регистра "быстрая обработка движений" и цеплять журнал документов вообще не придется
  
Наверх
 
IP записан
 
filh
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 36
Зарегистрирован: 23. Августа 2010
Re: Проблема с 1sqlite
Ответ #2 - 08. Ноября 2010 :: 07:28
Печать  
так тоже пробовал. Не помогает. Запрос длился 11.111с
Про быструю обработку знаю.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Проблема с 1sqlite
Ответ #3 - 08. Ноября 2010 :: 07:44
Печать  
Именно LEFT JOIN ставил?
Только что проверил у себя эти два запроса
Первые прогоны:
Цитата:
Твой вариант - Время выполнения = 133.5
Мой - Время выполнения = 2.41


Последующие прогоны:
Цитата:
Твой вариант - Время выполнения = 15.79
Мой - Время выполнения = 1.88


Всего записей за данный период - 19306
  
Наверх
 
IP записан
 
filh
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 36
Зарегистрирован: 23. Августа 2010
Re: Проблема с 1sqlite
Ответ #4 - 08. Ноября 2010 :: 07:49
Печать  
Проглядел LEFT...
Запрос длился 0.087с
Все же больше чем у фокса.
Второй прогон Запрос длился 0.053с

Спасибо
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Проблема с 1sqlite
Ответ #5 - 08. Ноября 2010 :: 07:52
Печать  
Тебе разница в 5 СОТЫХ секунды не устраивает???

В общих случаях 1sqlite будет медленнее фокса.
НО:
1. в фоксе тебе, чтобы попасть в индексы надо будет выёживаться каждый раз при написании запроса
2. в монопольном режиме работы фоксом ты ничего не запросишь
  
Наверх
 
IP записан
 
filh
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 36
Зарегистрирован: 23. Августа 2010
Re: Проблема с 1sqlite
Ответ #6 - 08. Ноября 2010 :: 07:54
Печать  
Про это знаю, но в данном случае, попасть в индексы не состовляет труда. И монопольная работа запрещена пользователям.
Да все устраивает  Подмигивание
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Проблема с 1sqlite
Ответ #7 - 08. Ноября 2010 :: 07:57
Печать  
Про еще один огромный плюс 1sqlite-а забыл - есть возможность использовать в качестве поставщика данных для ТП.

Ну и вся установка заканчивается на добавлении строчки "ЗагрузитьВК", в отличии от фокса.

В общем, каждому решать что он хочет. Я свой выбор сделал.  Подмигивание
  
Наверх
 
IP записан
 
filh
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 36
Зарегистрирован: 23. Августа 2010
Re: Проблема с 1sqlite
Ответ #8 - 08. Ноября 2010 :: 07:58
Печать  
За счет чего ускорение получилось?
  
Наверх
 
IP записан
 
filh
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 36
Зарегистрирован: 23. Августа 2010
Re: Проблема с 1sqlite
Ответ #9 - 08. Ноября 2010 :: 08:08
Печать  
При использовании LEFT на фоксе Запрос длился 0.018с
  
Наверх
 
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: Проблема с 1sqlite
Ответ #10 - 08. Ноября 2010 :: 13:39
Печать  
1900 записей в регистре - это такой мизер, что сложно делать какие-либо выводы.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать