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



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
IDDOC13 в _1SJOURN, кто то делал?
29. Октября 2010 :: 09:34
Печать  
Хочу добавить в _1SJOURN поле IDDOC13, которое будет равно длинному представлению объекта. Это надо для нормального использования индексов в других таблицах, где есть документы неопределенного вида. Кто такое делал, какие могут быть подводные камни?
Или лучше создать индексируемое представление и в него добавить это поле?

Все это надо чтобы ускорить получения выборок с использованием индексов.
  
Наверх
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: IDDOC13 в _1SJOURN, кто то делал?
Ответ #1 - 29. Октября 2010 :: 09:53
Печать  
pvase писал(а) 29. Октября 2010 :: 09:34:
Это надо для нормального использования индексов в других таблицах, где есть документы неопределенного вида.
можно ли один примерчик такой связки ?
Просто за мою практику я с такой надобностью вроде бы не сталкивался
  

1&&2&&3
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: IDDOC13 в _1SJOURN, кто то делал?
Ответ #2 - 29. Октября 2010 :: 10:15
Печать  
ПУБ, Регистр "Партии", Поле "Поставка" необходимо отсортировать по дате+время+IDDOC остатки. Для того чтобы отсортировать надо иметь связь с таблицей _1SJOURN, но чтобы построить связь, надо выполнить джойн RIGHT($РегПартии.Поставка,9) = _1SJOURN.IDDOC. А при такой конструкции можно забыть об индексе по полю Поставка в регистре Партии. Это простой пример, на самом деле там надо еще и фильтры делать. В общем вот такой примерчик.
  
Наверх
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: IDDOC13 в _1SJOURN, кто то делал?
Ответ #3 - 29. Октября 2010 :: 10:29
Печать  
Скорее всего в такой задаче первичной/ведущей будет таблица регистра.
А в этом случает индекс по Рег.Поставка не нужен.
В подобной задаче, скорее всего, будет востребован индекс регистра описывающий интервал и/или отбор по измерению.
  

1&&2&&3
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: IDDOC13 в _1SJOURN, кто то делал?
Ответ #4 - 29. Октября 2010 :: 10:55
Печать  
Это описан один из случаев. Конкретно сейчас стоит задача получить документы, по которым не были введены документы другого вида. При это в подчиненном документе поле для связи имеет неопределенный вид.
Использовать для этого таблицу _1SCRDOC еще хуже, потому что надо условие по PARENTVAL, где 23 значное представление, что еще хуже чем сравнение 13 символов или 9. К тому же выборку в таком случае придется делать через составное поле, т.е.
Код
Выбрать все
WHERE 'O1'+ИдДокумента36.Заказ+Док.IDDOC = _1SCRDOC.PARENTVAL 

, то мне кажеться что индекс по IDDOC таблицы документов будет незадействован.
  
Наверх
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: IDDOC13 в _1SJOURN, кто то делал?
Ответ #5 - 29. Октября 2010 :: 11:15
Печать  
Цитата:
надо условие по PARENTVAL, где 23 значное представление, что еще хуже чем сравнение 13 символов или 9. К тому же выборку в таком случае придется делать через составное поле
не вижу в длине поля и конкатенации ничего страшного. Лишь бы индекс нужный работал.
  

1&&2&&3
Наверх
 
IP записан
 
Leierkastenmann
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 114
Зарегистрирован: 30. Марта 2007
Re: IDDOC13 в _1SJOURN, кто то делал?
Ответ #6 - 29. Октября 2010 :: 11:57
Печать  
pvase писал(а) 29. Октября 2010 :: 09:34:
Хочу добавить в _1SJOURN поле IDDOC13, которое будет равно длинному представлению объекта. Это надо для нормального использования индексов в других таблицах, где есть документы неопределенного вида. Кто такое делал, какие могут быть подводные камни?
Или лучше создать индексируемое представление и в него добавить это поле?

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



А в реальности-то ускорится или нет? Что планы запросов показывают с и без такого поля?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: IDDOC13 в _1SJOURN, кто то делал?
Ответ #7 - 29. Октября 2010 :: 13:18
Печать  
(0)Может так попробовать

Заведи отдельную таблицу
create table x_journ (
iddoc13 char(13),
iddoc char(9),
CONSTRAINT PK0_x_journ  PRIMARY KEY (iddoc13)
)

ps придумал еще лучше
create table x_journ (
iddoc13 char(13),
row_id int,  -- это кластерный индекс таблицы _1sjourn
CONSTRAINT PK0_x_journ  PRIMARY KEY (iddoc13)
)



  
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: IDDOC13 в _1SJOURN, кто то делал?
Ответ #8 - 29. Октября 2010 :: 17:14
Печать  
Z1 писал(а) 29. Октября 2010 :: 13:18:
(0)Может так попробовать

Заведи отдельную таблицу
create table x_journ (
iddoc13 char(13),
iddoc char(9),
CONSTRAINT PK0_x_journ  PRIMARY KEY (iddoc13)
)

ps придумал еще лучше
create table x_journ (
iddoc13 char(13),
row_id int,  -- это кластерный индекс таблицы _1sjourn
CONSTRAINT PK0_x_journ  PRIMARY KEY (iddoc13)
)





Так и думал, и заполнять по триггеру на oninsert.
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать