Переключение на Главную Страницу Страницы: 1 ... 3 4 [5] 6  ОтправитьПечать
Очень популярная тема (более 25 ответов) ТП: ПоставщикДанныхИндексированнаяТаблица (число прочтений - 24465 )
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #60 - 20. Декабря 2006 :: 12:43
Печать  
spock писал(а) 20. Декабря 2006 :: 12:39:
Или если в селект-листе DESCR, то и ORDER по DESCR сделать.
Тоже попадаем в индекс замечательно.

Так что ли?
Код
Выбрать все
		|SELECT TOP 1
		|	UPPER(Товары.Descr) AS Индекс
		|FROM
		|	$Справочник.Товары AS Товары
		|ORDER BY Индекс
 


Тормозит оно.
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #61 - 20. Декабря 2006 :: 12:48
Печать  
Если с UPPER, то у меня получилось 6.31 сек.
Без UPPER - 1.429 сек.
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #62 - 20. Декабря 2006 :: 12:49
Печать  
Это время самого OLEDBCommand::ExecuteStatement(), т.е. без вывода.
  
Наверх
ICQ  
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #63 - 20. Декабря 2006 :: 12:54
Печать  
spock писал(а) 20. Декабря 2006 :: 12:48:
Если с UPPER, то у меня получилось 6.31 сек.
Без UPPER - 1.429 сек.

Странно. В этой теме: http://www.1cpp.ru/forum/YaBB.pl?num=1158481252/40#40
в конце я приводил результат тестирования. С UPPER получается попадание в индекс при поиске по наименованию. А без UPPER поиск по наименованию начинает тормозить.
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #64 - 20. Декабря 2006 :: 12:57
Печать  
Но в любом случае SELECT TOP 1 тормозит и непонятно, что с этим делать.
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #65 - 20. Декабря 2006 :: 13:02
Печать  
spock писал(а) 20. Декабря 2006 :: 12:48:
Если с UPPER, то у меня получилось 6.31 сек.
Без UPPER - 1.429 сек.

Непонятно, почему 6 секунд. У меня на 100 тыс: 1.2 сек. Без UPPER - 0.9 сек. Т.е. разница невелика.
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #66 - 20. Декабря 2006 :: 13:08
Печать  
ИМХО, если мы ставим в селект-листе функцию UPPER, то провайдер применяет ее к выборке (а вот ко всей или частично, тут хз).
Если же UPPER в условии, то мы облегчяем провайдеру жизнь, т.к. индекс по верхнему регистру и функция выполняется всего один раз.
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #67 - 20. Декабря 2006 :: 13:09
Печать  
Uzhast писал(а) 20. Декабря 2006 :: 13:02:
У меня на 100 тыс: 1.2 сек. Без UPPER - 0.9 сек.

я не понял... 1 сек - это тормозит? Улыбка
"вы много кушать" (с) шырли-мырли
  
Наверх
ICQ  
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #68 - 20. Декабря 2006 :: 13:12
Печать  
spock писал(а) 20. Декабря 2006 :: 13:09:
я не понял... 1 сек - это тормозит? Улыбка
"вы много кушать" (с) шырли-мырли

Конечно, тормозит! И не надо тут подходить, панимашь, с мерками программиста 1С!  Очень довольный
Выборка одного единственного элемента, из самого начала таблицы, упорядоченной по индексу, ЗА ЦЕЛУЮ СЕКУНДУ - это бред!!! Улыбка
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #69 - 20. Декабря 2006 :: 13:14
Печать  
Даже 1С работает быстрее Улыбка
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #70 - 20. Декабря 2006 :: 13:17
Печать  
а длина наименования у тебя какая?
  
Наверх
ICQ  
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #71 - 20. Декабря 2006 :: 13:21
Печать  
spock писал(а) 20. Декабря 2006 :: 13:08:
ИМХО, если мы ставим в селект-листе функцию UPPER, то провайдер применяет ее к выборке (а вот ко всей или частично, тут хз).
Если же UPPER в условии, то мы облегчяем провайдеру жизнь, т.к. индекс по верхнему регистру и функция выполняется всего один раз.


Вот-вот.
Ну, в общем, понятно, почему в данном, конкретном запросе с UPPER тормознее. Потому что не стоит никаких условий, что приводит к тупому перебору всего справочника. Поэтому UPPER-не UPPER, будет полный перебор. А в случае UPPER еще лишнее преобразование всей выборки в верхний регистр.

spock писал(а) 20. Декабря 2006 :: 13:17:
а длина наименования у тебя какая?

Как полагается Улыбка На всю катушку - 100 символов. Плюс до фига длинных текстовых реквизитов Улыбка
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #72 - 20. Декабря 2006 :: 13:38
Печать  
угу, у меня тоже 100 символов.
Что-то filemon показывает непонятные вещи...
Запрос:
Код
Выбрать все
SELECT TOP 1
	Товары.descr AS Наименование
FROM
	$Справочник.Номенклатура AS Товары
ORDER BY Товары.descr
 


Показывает, что провайдер сначала читает заголовок, потом лезет в индекс, а потом в данные.
Получилось 6105 обращений и, примерно, половину побращений к индексу, а остальная половина к данным.
Выходит, что MSVFPTeam только оптимизировала, но не добилась лучших результатов в этом вопросе Улыбка
  
Наверх
ICQ  
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #73 - 20. Декабря 2006 :: 13:44
Печать  
spock писал(а) 20. Декабря 2006 :: 13:38:
Показывает, что провайдер сначала читает заголовок, потом лезет в индекс, а потом в данные.
Получилось 6105 обращений и, примерно, половину побращений к индексу, а остальная половина к данным.
Выходит, что MSVFPTeam только оптимизировала, но не добилась лучших результатов в этом вопросе Улыбка

Все понятно. Он лезет в индекс и начинает его обходить с забором соответствующего поля из данных, чтобы получить упорядоченную выборку. Только, зараза, забывает, что у него SELECT TOP 1 стоит и можно сразу остановиться Улыбка Эх, сюда бы возможности MySQL прикрутить, у них там эти частичные выборки просто замечательно реализованы (в Веб постраничный вывод записей - обычное дело) Улыбка
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #74 - 20. Декабря 2006 :: 13:47
Печать  
Кто в курсе, как в cdx хранятся данные?
Как в скуле в упорядоченном виде или по другому?
Вообще, при каждой записи упорядочивать данные в cdx тяжелая задача.
И судя по опыту, то после переиндексации база работает пошустрее.
Тут бы послушать лудей, которые с фоксом дружили в свое время, хорошо.
зы: почти 1,5л хольстена, я скоро пасс.
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 3 4 [5] 6 
ОтправитьПечать