Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема SQL Замена граф отбора на что то другое? (число прочтений - 1264 )
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
SQL Замена граф отбора на что то другое?
30. Июля 2010 :: 12:41
Печать  
Вот посмотрел, что графы очень сильно замедляют просмотр информации в журналах. Но вот в чем проблема. Заменить их на функцию, в которую включить поля граф - замедление еще сильнее. Если же сделать представление, то выборка еще медленнее чем с графами отбора.
Есть несколько решений:
1 - добавить индексы к каждой таблице по колонке, которая включена в графу.
2 - сделать индексируемое представление.
Все это как бы реализуемо, но есть кое что, с чем пока не моу понять как бороться. Это колонки в представлении. Дело в том, что в графу могут входить как реквизиты с определенным типом и видом, так и с неопределенным. Соответсвенно чтобы получить полный идентификатор надо добавлять к значениям слева представление типа и 36 значное вида. Или же обрезать (SUBSTRING() значение где тип неопределенный или же брать правые 9 для определенного типа) Если выбрать вариант без индексов, то SUBSTRING() работает быстрее чем добавление справа симольных данных (что как то странно). С индексами пока не пробовал.
Что скажете, может кто уже делал аналогичное, как вы заменяли графы отбора на свои, или вы не заменяли?
  
Наверх
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: SQL Замена граф отбора на что то другое?
Ответ #1 - 30. Июля 2010 :: 12:58
Печать  
Такой же вопрос касательно общего журнала, его реализации. По производительности лучше делать через Представление с UNION ALL по всем документам, или же на каждую графу делать функцию, возвращающую требуемое значение.
  
Наверх
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: SQL Замена граф отбора на что то другое?
Ответ #2 - 30. Июля 2010 :: 13:39
Печать  
Сделал 2 обработки по созданию представлений:
1 - создает представления с обрезкой реквизитов,
2 - создает представление с добавлением к реквизитам слева символы типа и вида. Без индексов оба работают намного медленнее чем стандартный метод отбора по таблице _1SCRDOC.

Для работы обработок надо 1С++ и база в формате SQL.
  

graf_otbor.rar ( 22 KB | Загрузки )
Наверх
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: SQL Замена граф отбора на что то другое?
Ответ #3 - 01. Августа 2010 :: 14:37
Печать  
Может сделать на каждую графу свою таблицу с уникальным индексом ЗначениеГрафи+IDDOC? Может это будет максимально  быстродействующий метод?
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать