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


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Оптимизация запроса для ТП
Ответ #30 - 05. Марта 2008 :: 14:50
Печать  
OFF:
trad писал(а) 05. Марта 2008 :: 14:22:
еще раз прочитаете пост Берездетского
По-русски пишется "Берездецкий".
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Оптимизация запроса для ТП
Ответ #31 - 05. Марта 2008 :: 15:04
Печать  
berezdetsky писал(а) 05. Марта 2008 :: 14:50:
OFF:
trad писал(а) 05. Марта 2008 :: 14:22:
еще раз прочитаете пост Берездетского
По-русски пишется "Берездецкий".

ОФФ2:
У меня друг есть по фамилии Навроцкий. Он тоже постоянно нервничает в связи с такими вот опечатками.  Подмигивание
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Оптимизация запроса для ТП
Ответ #32 - 05. Марта 2008 :: 15:10
Печать  
OFF3:
JohnyDeath писал(а) 05. Марта 2008 :: 15:04:
Он тоже постоянно нервничает

Цитата:
Вот Вы поели тухлые консервы
и в головах у Вас свеча горит -
Вам это очень действует на нервы...

Смех
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Оптимизация запроса для ТП
Ответ #33 - 05. Марта 2008 :: 15:30
Печать  
Кстати, а есть проблемы у ТП со справочниками. Есть у нас справочник на пол-лимона с хвостиком. Очень даже заметно подтормаживание. И это только при условии, что в индекс попали.
Провел на эту тему небольшое исследование - решение есть.
  
Наверх
ICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Оптимизация запроса для ТП
Ответ #34 - 05. Марта 2008 :: 15:37
Печать  
spock писал(а) 05. Марта 2008 :: 15:30:
Кстати, а есть проблемы у ТП со справочниками. Есть у нас справочник на пол-лимона с хвостиком. Очень даже заметно подтормаживание. И это только при условии, что в индекс попали.
Провел на эту тему небольшое исследование - решение есть.

Поделись подробностями.
У меня справочник есть примерно тысяч на 70. Тормозов не вижу.
Ты случайно не на форме списка справочника ТП делаешь?
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Оптимизация запроса для ТП
Ответ #35 - 05. Марта 2008 :: 15:48
Печать  
vip писал(а) 05. Марта 2008 :: 15:37:
Ты случайно не на форме списка справочника ТП делаешь?

Нет. Класс + обработка.
Я не верно выразился про тормоза. Тормоза возникают при подкачке следующей порции данных по TOP N.
Т.е. открыли форму (уже здесь есть тормоза подкачивания), жмем ArrDwn, курсор добегает до последней строки ТП, следующая строка -> получаем следующую порцию = тормоза.
  
Наверх
ICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Оптимизация запроса для ТП
Ответ #36 - 05. Марта 2008 :: 15:51
Печать  
spock писал(а) 05. Марта 2008 :: 15:48:
vip писал(а) 05. Марта 2008 :: 15:37:
Ты случайно не на форме списка справочника ТП делаешь?

Нет. Класс + обработка.
Я не верно выразился про тормоза. Тормоза возникают при подкачке следующей порции данных по TOP N.
Т.е. открыли форму (уже здесь есть тормоза подкачивания), жмем ArrDwn, курсор добегает до последней строки ТП, следующая строка -> получаем следующую порцию = тормоза.

А вот такое поведение как раз и свидетельствует о непопадании в индекс.
В свое время тов. Arta мне хорошо и наглядно это объяснил.
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Оптимизация запроса для ТП
Ответ #37 - 05. Марта 2008 :: 15:56
Печать  
vip писал(а) 05. Марта 2008 :: 15:51:
А вот такое поведение как раз и свидетельствует о непопадании в индекс.

окай, будем на конкретных цифрах и данных проводить анализ.
Сейчас подготовлюсь...
  
Наверх
ICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Оптимизация запроса для ТП
Ответ #38 - 05. Марта 2008 :: 16:02
Печать  
spock писал(а) 05. Марта 2008 :: 15:56:
vip писал(а) 05. Марта 2008 :: 15:51:
А вот такое поведение как раз и свидетельствует о непопадании в индекс.

окай, будем на конкретных цифрах и данных проводить анализ.
Сейчас подготовлюсь...

Только надо привлечь гуру.
Я соображаю не быстро Улыбка
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Оптимизация запроса для ТП
Ответ #39 - 05. Марта 2008 :: 16:32
Печать  
Допустим, что нам нужен грид для справочника (сейчас у меня под рукой небольшой: Номенклатура-SC12 = 32979).
Идем по короткому и простому пути:
  • вывод с учетом иерархии;
  • элементы первого уровня (parentid = '     0   ');
  • сортировка по наименованию;
  • группы сверху;
  • за границы первой порции не выходим (т.е. не двигаем курсор в гриде, а тупо смотрим);


Первая итерация: выводим наименования и row_id (как ключ для ТП) элементов.
Код
Выбрать все
select top 20
	descr as Наименование,
	row_id as row_id
from sc12 (nolock)
where
	parentid = '     0   '
order by
	parentid,
	isfolder,
	descr,
	row_id
 


Реакция мгновенная: попали в индекс PDESCR, получили 20 строк из 60 (на этом уровне всего 60 эл-ов). Все просто замечательно - пользователи довольны.

Вторая итерация: выводим наименования, isfolder (пользователи говорят, что не понятно кто из элементов списка есть группа, а кто элемент - будем рисовать пиктограммки) и row_id (как ключ для ТП) элементов.
Код
Выбрать все
select top 20
	descr as Наименование,
	isfolder as Пиктограммка,
	row_id as row_id
from sc12 (nolock)
where
	parentid = '     0   '
order by
	parentid,
	isfolder,
	descr,
	row_id
 


Результаты как в предыдущем - все окай.

Третья итерация: выводим наименования, isfolder, код (видите ли хотят видеть код/артикул) и row_id элементов.
Код
Выбрать все
select top 20
	descr as Наименование,
	isfolder as Пиктограммка,
	code as Код,
	row_id as row_id
from sc12 (nolock)
where
	parentid = '     0   '
order by
	parentid,
	isfolder,
	descr,
	row_id
 


А тут уже начинается хужесть, но только самая-самая малость. А с добавление новых полей эта хужесть становится только хужее (наверняка нужно будет выводить ismark, чтобы пиктограммы были полноценными и некоторые поля таблицы: ед. изм. и прочее).
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Оптимизация запроса для ТП
Ответ #40 - 05. Марта 2008 :: 16:35
Печать  
План выполнения для 1-2
  

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



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Оптимизация запроса для ТП
Ответ #41 - 05. Марта 2008 :: 16:37
Печать  
План для 3:
  

explan3.PNG ( 3 KB | Загрузки )
explan3.PNG
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Оптимизация запроса для ТП
Ответ #42 - 05. Марта 2008 :: 16:39
Печать  
berezdetsky писал(а) 05. Марта 2008 :: 14:50:
OFF:
trad писал(а) 05. Марта 2008 :: 14:22:
еще раз прочитаете пост Берездетского
По-русски пишется "Берездецкий".

извини, Иван
  

1&&2&&3
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Оптимизация запроса для ТП
Ответ #43 - 05. Марта 2008 :: 16:39
Печать  
Более подробная статистика планаов выполнения в данном случае не актуально, потому как база вообще никакая. Реальные планы будут только завтра (если будет возможность постить на форуме).
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Оптимизация запроса для ТП
Ответ #44 - 05. Марта 2008 :: 16:45
Печать  
Но в чем проблема можно пояснить еще сейчас. Проблема в букмарках. Что и логично - они должны быть, т.к. в индексах есть только часть информации для селект-листа, а за полями code, ismark и прочими spxxx серверу нужно лезть на самый низкий уровень дерева.
В моем случае на первом уровне справочника было 180 тыс с копейками элементов + сервак многоголовый - скуль строит планы выполнения забавные до безобразия Улыбка , но жутко логичные. Индексные хинты только усугубляют положение.
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 [3] 4 5 6
ОтправитьПечать