Переключение на Главную Страницу Страницы: 1 ... 5 6 [7] 8 9 ... 20 ОтправитьПечать
Очень популярная тема (более 25 ответов) 1sqlite (число прочтений - 64565 )
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: 1sqlite
Ответ #90 - 26. Октября 2007 :: 11:13
Печать  
spock писал(а) 26. Октября 2007 :: 11:07:
kms писал(а) 26. Октября 2007 :: 10:45:
Только Index Seek + Index Scan.
Либо Index Scan + Bookmark lookup по индексу упорядочивания.

index scan появляется так как запрос получается ранжированый - с этого места по вооон то он сканирует индекс.
bookmark появляется только из-за того, что не все данные, которые ты просишь показать в ТП, лежат в индексе. Поэтому скуль спукается к самим данным.

Выводы неверные.
Но это я сам неправ, запрос не показал.
Код
Выбрать все
select top 20 * from sc84
where id > '   58O   '
order by parentid, isfolder, descr, row_id
 


Можно использовать индексные хинты, добиваясь разного подхода со стороны оптимизатора, но смысл примерно один.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: 1sqlite
Ответ #91 - 26. Октября 2007 :: 11:16
Печать  
Salimbek писал(а) 26. Октября 2007 :: 11:12:
Uzhast - ты меня извини, но я в этом споре поддерживаю Орефкова. Ибо его точка зрения для меня более убедительна. Например тот алгоритм, про который ты говоришь "шаткое предположение" - совпадает с тем, который реализовал бы я, если б мне пришлось решать подобную задачу.

Не надо никого поддерживать.
Здесь же не голосованием вопросы решаются.

Если есть официальное подтверждение той или иной позиции, давайте его в студию.
Либо эксперементальные выкладки - тоже сойдет.

Иначе мы опять будем перетирать чистые умозаключения - это бесперспективно.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1sqlite
Ответ #92 - 26. Октября 2007 :: 11:17
Печать  
Цитата:
Выводы неверные.

у тебя есть возможность поправить свое сообщение иначе разберу по косточкам Улыбка
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1sqlite
Ответ #93 - 26. Октября 2007 :: 11:18
Печать  
Цитата:
Можно использовать индексные хинты, добиваясь разного подхода со стороны оптимизатора, но смысл примерно один.

хинтами можно только усложнить себе жизнь - индексные хинты не наш путь.
  
Наверх
ICQ  
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: 1sqlite
Ответ #94 - 26. Октября 2007 :: 11:19
Печать  
Вот kms понимает, о чем я говорю.
А индексы - они и в Африке индексы, что в SQL, что в DBF.
И работа с ними везде одинакова.

А с Uzhast'ом скорее всего, мы просто ведем дисскуссию, каждый думая о своем, и совершенно о разном Улыбка
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: 1sqlite
Ответ #95 - 26. Октября 2007 :: 11:19
Печать  
spock писал(а) 26. Октября 2007 :: 11:17:
Цитата:
Выводы неверные.

у тебя есть возможность поправить свое сообщение иначе разберу по косточкам Улыбка

Ой.
Начитался классиков, что ли? Смех
  

De quelle planète es-tu?
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1sqlite
Ответ #96 - 26. Октября 2007 :: 11:22
Печать  
kms писал(а) 26. Октября 2007 :: 11:19:
Начитался классиков, что ли? Смех

конечно, как же без классиков.
  
Наверх
ICQ  
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: 1sqlite
Ответ #97 - 26. Октября 2007 :: 13:18
Печать  
Что то в sqllite.ert не работает
Код
Выбрать все
select * from Номенклатура
where Номенклатура.Ширина=0.00 


Хотя
Код
Выбрать все
select * from Номенклатура
where Номенклатура.Ширина>=0.00 


работает нормально.

По ширине индекса нет.

По предварительным тестам - простые индексы работают не хуже Fox ( на локалке тестил )-
на сервере опасаюсь - какие-то траблы прошлый раз пошли с работой Fox после запуска sqllite.

Предложение IN не оптимизировано (в 22 раза медленнее "=" ).
Предложение Between дало пустой результат.
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: 1sqlite
Ответ #98 - 26. Октября 2007 :: 13:38
Печать  
Пожалуй, даже SQlLite быстрее при полном попадании в индекс
Все это очень радует Улыбка
Вопрос - как обращаться к регистрам и журналу  - хочется проверить работу с индексными выражениями
и JOIN
  
Наверх
 
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: 1sqlite
Ответ #99 - 26. Октября 2007 :: 13:47
Печать  
Смотрим старовый топик.
Давайте пока на справочниках отладим правильную работу с индексами.
Потом за журналы и документы примемся.
  
Наверх
 
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: 1sqlite
Ответ #100 - 26. Октября 2007 :: 13:49
Печать  
kiruha писал(а) 26. Октября 2007 :: 13:38:
Пожалуй, даже SQlLite быстрее при полном попадании в индекс
Все это очень радует Улыбка
Вопрос - как обращаться к регистрам и журналу  - хочется проверить работу с индексными выражениями
и JOIN

JOINы можно пока и на справочниках потестить, подцеплять реквизиты по id.
С условием IN трабла.
При работе со своими таблицами SQLite его нормально оптимизирует, а вот когда обращение к виртуальной таблице, он тупо меня даже не спрашивает, а делает full scan, и проверяет на попадание в список.
Вместо того, чтобы сделать выборку из виртуальной таблицы для каждого значения в in.
А вот если запихать все из in во временную таблицу, и сделать с ней join, то нормально.
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1sqlite
Ответ #101 - 26. Октября 2007 :: 14:01
Печать  
Цитата:
а делает full scan

А как sqlite работает с OR?
  
Наверх
ICQ  
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: 1sqlite
Ответ #102 - 26. Октября 2007 :: 14:26
Печать  
spock писал(а) 26. Октября 2007 :: 14:01:
Цитата:
а делает full scan

А как sqlite работает с OR?

http://www.sqlite.org/optoverview.html
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: 1sqlite
Ответ #103 - 26. Октября 2007 :: 14:34
Печать  
JOIN отрабатыват нормально по Id.
Код тоже ловится.

Условия на реквизиты отрабатываются неверно.
Хотя судя по скорости выполнения с ">"индекс UPPER(sp3677)+UPPER(descr) ловится
но результат не очень понятный.

LiKE отработал верно, но тоже в 29 раз медленнее.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: 1sqlite
Ответ #104 - 26. Октября 2007 :: 14:43
Печать  
orefkov писал(а) 26. Октября 2007 :: 08:30:
Z1 писал(а) 26. Октября 2007 :: 07:37:
Вечером постараюсь выложить тест с цифрами.
Получается что для связка 1с sql +
виртуальная таблица sqlite работает значительно быстрее чем скопированная в память родная таблица sqlite на реальном большом справочнике Клиенты.
Очень неожиданный положительный результат.
Для 1с dbf такого нет.( т.е. родная sqlite таблица быстрее чем вирт таблица )
Также компонента 1.4 на родной sqlite таблице работает чуть быстрее
чем с версией 1.0 1csqlite.dll, если надо то тоже выложу эти цифры.

Немного недопонял.
Если база не дбф, ВК не отображает таблицы 1С как виртуальные таблицы.

Это я ошибся запускал Запрос.Выполнить() думал все выполняется, ан-нет там
наверное просто заглушка.
Еще идея может и бредовая некоторые таблицы справочники (редко изменяемые )
скопировать в родную sqlite таблицу ( "INSERT INTO  Кл_1 SELECT Клиенты.ID,Клиенты.Descr from Клиенты, где таблица Клиенты виртуальная, а Кл_1 родная )  и далее обращаться к ней.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 5 6 [7] 8 9 ... 20
ОтправитьПечать