Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Доп. индексы на таблицы 1С (число прочтений - 11330 )
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Доп. индексы на таблицы 1С
16. Апреля 2008 :: 09:23
Печать  
Во, нашёл тут:  http://itland.ru/forum//index.php?s=56ffd37e8c3f74e9df14a1d775e92f03&showtopic=2...;

2 trad надеюсь, это не секретная информация  Улыбка
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Доп. индексы на таблицы 1С
Ответ #1 - 16. Апреля 2008 :: 09:26
Печать  
У меня доп индексы пару лет. Решение описано на софтпоинте, 100% рабочее.
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Доп. индексы на таблицы 1С
Ответ #2 - 16. Апреля 2008 :: 09:33
Печать  
Arta писал(а) 16. Апреля 2008 :: 09:26:
У меня доп индексы пару лет. Решение описано на софтпоинте, 100% рабочее.

Т.е. рекомендуешь?
А то сомнения какие-то смутные. А выигрыш очевиден.
  
Наверх
ICQ  
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Доп. индексы на таблицы 1С
Ответ #3 - 16. Апреля 2008 :: 09:56
Печать  
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Доп. индексы на таблицы 1С
Ответ #4 - 16. Апреля 2008 :: 09:56
Печать  
ADirks писал(а) 16. Апреля 2008 :: 09:23:
Во, нашёл тут:  http://itland.ru/forum//index.php?s=56ffd37e8c3f74e9df14a1d775e92f03&showtopic=2...;

2 trad надеюсь, это не секретная информация  Улыбка

Уже и здесь обсуждалось и выкладывалось: http://www.1cpp.ru/forum/YaBB.pl?num=1188387114/ (сам скрипт в 10-м посте)
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Доп. индексы на таблицы 1С
Ответ #5 - 16. Апреля 2008 :: 09:57
Печать  
vip писал(а) 16. Апреля 2008 :: 09:33:
Т.е. рекомендуешь?
А то сомнения какие-то смутные. А выигрыш очевиден.

Я уже неоднократно рекомендовал на форуме. Скорость в некоторых местах возрастает в десятки раз, особенно заметно на таблицах с миллионами записей.
  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Доп. индексы на таблицы 1С
Ответ #6 - 16. Апреля 2008 :: 10:07
Печать  
Arta, тот скрип, про который говорит Алексей, не требует правки хранимых процедур. Согласись, это огромный плюс?
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Доп. индексы на таблицы 1С
Ответ #7 - 16. Апреля 2008 :: 11:04
Печать  
ADirks писал(а) 16. Апреля 2008 :: 09:23:
2 trad надеюсь, это не секретная информация  Улыбка
с чего бы

ps
Очень бородатая тема.
Да, правда, раньше баловался этим, но не прижилось.
Сейчас как то получается обходиться без этой самодеятельности.
  

1&&2&&3
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Доп. индексы на таблицы 1С
Ответ #8 - 16. Апреля 2008 :: 11:24
Печать  
trad писал(а) 16. Апреля 2008 :: 11:04:
Да, правда, раньше баловался этим, но не прижилось.
Сейчас как то получается обходиться без этой самодеятельности.[/size]


А почему не прижилось?
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Доп. индексы на таблицы 1С
Ответ #9 - 16. Апреля 2008 :: 11:37
Печать  
sadovnikov писал(а) 16. Апреля 2008 :: 11:24:
trad писал(а) 16. Апреля 2008 :: 11:04:
Да, правда, раньше баловался этим, но не прижилось.
Сейчас как то получается обходиться без этой самодеятельности.[/size]


А почему не прижилось?

потому, что Цитата:
Сейчас как то получается обходиться без этой самодеятельности.
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Доп. индексы на таблицы 1С
Ответ #10 - 16. Апреля 2008 :: 11:41
Печать  
+ естественно все субъективно и индивидуально
  

1&&2&&3
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Доп. индексы на таблицы 1С
Ответ #11 - 16. Апреля 2008 :: 11:42
Печать  
trad писал(а) 16. Апреля 2008 :: 11:37:
А почему не прижилось?

потому, что Цитата:
Сейчас как то получается обходиться без этой самодеятельности.

Нда... Неправильно я поставил вопрос... Переформулирую: как получается обходиться без этой самодеятельности?
P.S. Предчуствую ответ: "Как-то получается." Улыбка
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Доп. индексы на таблицы 1С
Ответ #12 - 16. Апреля 2008 :: 11:42
Печать  
Пока про эту тему разговор зашел - можно спросить?
Так вот - я захотел проанализировать у клиента что сильно грузит sql сервер.
Запустил profiler, подождал 20 минут, потом результат сбросил в таблицу в отдельной базе, натравил Index Tunning Wizard, но в результате анализа ничего не получил Печаль Точнее такой таблички с предложение индексов - не появилось Печаль. Не подскажите ли краткую методику анализа запросов, или что я сделал не правильно? Я предполагаю, что надо было какие-то фильтры поставить в Profiler но какие точно не знаю. Заранее спасибо!
  
Наверх
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Доп. индексы на таблицы 1С
Ответ #13 - 16. Апреля 2008 :: 11:50
Печать  
sadovnikov писал(а) 16. Апреля 2008 :: 11:42:
P.S. Предчуствую ответ: "Как-то получается." Улыбка

Именно так. А как по другому ответить? Ведь ты же понимаешь что все зависит от конкретной задачи.
Получается укладываться в штатные индексы. Либо задачи у меня не сильно жуткие, либо проектировать получается удачно. Скорее первое.
  

1&&2&&3
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Доп. индексы на таблицы 1С
Ответ #14 - 16. Апреля 2008 :: 11:55
Печать  
trad писал(а) 16. Апреля 2008 :: 11:50:
Ведь ты же понимаешь что все зависит от конкретной задачи.
Получается укладываться в штатные индексы.


Разумеется, понимаю...
Однако, у меня сегодня прямо душа порадовалась, когда Алексей этот скрип показал.
Наконец-то можно будет сделать так, чтобы, например, отчет "Реестр документов" с фильтром по товару зарботал шустрее. Да и вообще, широчайшее поле для оптимизации.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Доп. индексы на таблицы 1С
Ответ #15 - 16. Апреля 2008 :: 12:15
Печать  
sadovnikov писал(а) 16. Апреля 2008 :: 11:55:
Наконец-то можно будет сделать так, чтобы, например, отчет "Реестр документов" с фильтром по товару зарботал шустрее.

Я сам это не практиковал, но что мешает для решения этой конкретной задачи использовать графу отбора.
  

1&&2&&3
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Доп. индексы на таблицы 1С
Ответ #16 - 16. Апреля 2008 :: 12:17
Печать  
trad писал(а) 16. Апреля 2008 :: 12:15:
...но что мешает для решения этой конкретной задачи использовать графу отбора.


Очень не хочется перегружать таблицу _1SCRDOC. Ей, бедной, и так тяжело.
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Доп. индексы на таблицы 1С
Ответ #17 - 16. Апреля 2008 :: 12:32
Печать  
sadovnikov писал(а) 16. Апреля 2008 :: 10:07:
Arta, тот скрип, про который говорит Алексей, не требует правки хранимых процедур. Согласись, это огромный плюс?

Плюс? А какой? Улыбка  Я один раз два года назад подправил процедуру и забыл про это дело.
Только индексы приходится создавать с именем по маске, но зато сразу можно отличить от штатных.
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Доп. индексы на таблицы 1С
Ответ #18 - 16. Апреля 2008 :: 12:33
Печать  
trad писал(а) 16. Апреля 2008 :: 12:15:
Я сам это не практиковал, но что мешает для решения этой конкретной задачи использовать графу отбора.


Вообще отказался от них Улыбка
  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Доп. индексы на таблицы 1С
Ответ #19 - 16. Апреля 2008 :: 12:38
Печать  
Arta писал(а) 16. Апреля 2008 :: 12:32:
sadovnikov писал(а) 16. Апреля 2008 :: 10:07:
Arta, тот скрип, про который говорит Алексей, не требует правки хранимых процедур. Согласись, это огромный плюс?

Плюс? А какой? Улыбка  Я один раз два года назад подправил процедуру и забыл про это дело.
Только индексы приходится создавать с именем по маске, но зато сразу можно отличить от штатных.


Тебе проще - у тебя одна (?) база и ты сам за ней следишь. У нас другая ситуация, так что правка ХП - серьезное ограничение.
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Доп. индексы на таблицы 1С
Ответ #20 - 16. Апреля 2008 :: 12:46
Печать  
sadovnikov писал(а) 16. Апреля 2008 :: 12:38:
Тебе проще - у тебя одна (?) база и ты сам за ней следишь. У нас другая ситуация, так что правка ХП - серьезное ограничение.

Разговор идет про базу или сервер? Баз у меня десяток.
Я вот к чему:

Цитата:
В процедуре master.dbo.sp_statistics (процедура, ответственная за проверку наличия индексов таблиц) необходимо изменить небольшую часть кода.
  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Доп. индексы на таблицы 1С
Ответ #21 - 16. Апреля 2008 :: 12:58
Печать  
Arta писал(а) 16. Апреля 2008 :: 12:46:
Разговор идет про базу или сервер?


Судя по всему, про сервер...
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Доп. индексы на таблицы 1С
Ответ #22 - 16. Апреля 2008 :: 13:04
Печать  
2 sadovnikov
проясни. в твоей задаче реестр документов только по одному виду?
  

1&&2&&3
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Доп. индексы на таблицы 1С
Ответ #23 - 16. Апреля 2008 :: 13:10
Печать  
sadovnikov писал(а) 16. Апреля 2008 :: 12:58:
Судя по всему, про сервер...

Ну так на сервере она одна. Долго ли ее поправить Улыбка
  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Доп. индексы на таблицы 1С
Ответ #24 - 16. Апреля 2008 :: 13:13
Печать  
trad писал(а) 16. Апреля 2008 :: 13:04:
2 sadovnikov
проясни. в твоей задаче реестр документов только по одному виду?


Конечно, в общем случае - не по одному виду. Однако, очень часты ситуации, когда пользователи терзают именно один вид - что там ищут.

2 Arta. А у меня только у одного клиента 19 филиалов...
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Доп. индексы на таблицы 1С
Ответ #25 - 16. Апреля 2008 :: 13:26
Печать  
Все же не понятно чем crdoc не катит для этой задачи.
Аргумент "Ей, бедной, и так тяжело." меня приводит только к тупиковому рассуждению что есть тяжело, а что есть легко  Озадачен
В моей основной базе записей в црдоке почти в 4 раза больше чем в журне. но при использованиии црдока в запросах тяжести не ощущаю  Озадачен
  

1&&2&&3
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Доп. индексы на таблицы 1С
Ответ #26 - 16. Апреля 2008 :: 13:37
Печать  
trad писал(а) 16. Апреля 2008 :: 13:26:
Все же не понятно чем crdoc не катит для этой задачи.
Аргумент "Ей, бедной, и так тяжело." меня приводит только к тупиковому рассуждению что есть тяжело, а что есть легко  Озадачен
В моей основной базе записей в црдоке почти в 4 раза больше чем в журне. но при использованиии црдока в запросах тяжести не ощущаю  Озадачен


Да, я тоже не понял - ведь запросы с crdoc всегда идут по индексу (или графа, или подчиненные)
и размер не должен иметь решающего значения...
  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Доп. индексы на таблицы 1С
Ответ #27 - 16. Апреля 2008 :: 13:48
Печать  
"Тяжело", например, делать связывание товара в табличной части документа и поля PARENTVAL в формате неопределенного значения. При условии, что в базе несколько миллионов документов.
Могу привести другой пример: поиск надо делать не только по товару. А по связке 2 полей - товар и его доп. характеристика.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Доп. индексы на таблицы 1С
Ответ #28 - 16. Апреля 2008 :: 14:09
Печать  
sadovnikov писал(а) 16. Апреля 2008 :: 13:48:
"Тяжело", например, делать связывание товара в табличной части документа и поля PARENTVAL в формате неопределенного значения. При условии, что в базе несколько миллионов документов.
Могу привести другой пример: поиск надо делать не только по товару. А по связке 2 полей - товар и его доп. характеристика.

Нет. Подожди с другими примерами. мы рассматриваем пока одну конкретную задачу: "отбор документов по товару для построения реестра"
Так и получаем некоторый набор CHILD_DATE_TIME_IDDOC по графе и PARENTVAL = нашему товару.
К чему связь с ТЧ и аргумент "много милионов документов"
  

1&&2&&3
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Доп. индексы на таблицы 1С
Ответ #29 - 16. Апреля 2008 :: 14:26
Печать  
trad писал(а) 16. Апреля 2008 :: 14:09:
Нет. Подожди с другими примерами. мы рассматриваем пока одну конкретную задачу: "отбор документов по товару для построения реестра"
Так и получаем некоторый набор CHILD_DATE_TIME_IDDOC по графе и PARENTVAL = нашему товару.
К чему связь с ТЧ и аргумент "много милионов документов"


Во накинулись Улыбка
"К чему связь с ТЧ" - фильтр по количесву, сумме и т.д. Тоесть, по реквизитам ТЧ.
Если задачу сводить к "отбору документов по товару для построения реестра", то да.  _1SCRDOC для этого вполне хватит.
"аргумент "много милионов документов" - при относительно небольшом количество товаров (несколько тыс. позиций), но большом документообороте, ИМХО, селективность индекса будет низкой. И количество записей в таблице будет хорошо сказываться на производительности. (Или я уже бред несу?)
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Доп. индексы на таблицы 1С
Ответ #30 - 16. Апреля 2008 :: 17:21
Печать  
sadovnikov писал(а) 16. Апреля 2008 :: 14:26:
"К чему связь с ТЧ" - фильтр по количесву, сумме и т.д. Тоесть, по реквизитам ТЧ.

Хорошо. Допустим нам нужны строки ТЧ для доп.информации. Тогда такой тезис: реестры документов обычно строят за определенный период времени. Тогда если не использовать црдок то остается только журн. И я не могу представить запрос который бы эффективно использовал индекс по позиции журна совместно с доп.индексом ТЧ. Более эффективный чем запрос по црдок.

Цитата:
Во накинулись Улыбка
Не переживай. Я просто пытаюсь, с твоей помощью, построить цепь рассуждений для ответа на твой же вопрос: "А почему не прижилось?"

А насчет селективности. Имхо селективность индекса црдока по "нашей" графе отбора будет примерно так же кореллировать с количеством товаров и документов как и селективность доп.индекса для ТЧ.
  

1&&2&&3
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Доп. индексы на таблицы 1С
Ответ #31 - 17. Апреля 2008 :: 05:50
Печать  
trad
Давай еще чуток усложним ситуацию... В отчет отбираем документы с использованием фильра по:
- одному виду документов
- периоду
- общему реквизиту с галкой Отбор (допустим, Фирма)
- товару
доп. ревизит ТЧ задействовать не будем.
Рисуем запрос:

Select
     ЖурналДокументов.Date_Time_IDDOC
From
    ЖурналДокументов
    Left Join докЗаявкаНаСкладТЧ докЗаявкаТЧ On Right(ЖурналДокументов.Date_Time_IDDOC, 9) = докЗаявкаТЧ.IDDOC
Where
   ЖурналДокументов.Date_Time_IDDOC > @Начдата And ЖурналДокументов.Date_Time_IDDOC < @КонДатаПлюс1
   And ЖурналДокументов.Фирма = @идФирма
   And докЗаявкаТЧ.ТОвар = @идТовар
   And ЖурналДокументов.IdDocDef = 998

Потом строим индекс:
CREATE  UNIQUE  INDEX [_DT998] ON [dbo].[DT998]([IDDOC], SP1002) ON [PRIMARY]

DT998 - документ ЗаявкаНаСклад, SP1002 - товар.

Чуток подправляем запрос:

Select
     ЖурналДокументов.Date_Time_IDDOC
From
    ЖурналДокументов
    Left Join докЗаявкаНаСкладТЧ докЗаявкаТЧ On докЗаявкаТЧ.IDDOC = Right(ЖурналДокументов.Date_Time_IDDOC, 9) And докЗаявкаТЧ.ТОвар = @идТовар
Where
   ЖурналДокументов.Date_Time_IDDOC > @Начдата And ЖурналДокументов.Date_Time_IDDOC < @КонДатаПлюс1
   And ЖурналДокументов.Фирма = @идФирма
   And ЖурналДокументов.IdDocDef = 998

И, блин, не видим никакого ускорения Печаль
Слишком мало строк приходится на связывание с докЗаявкаНаСкладТЧ.

ИМХО, использование _1SCRDOC в данном случае только снизит скорость выполнения запроса.
  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Доп. индексы на таблицы 1С
Ответ #32 - 17. Апреля 2008 :: 06:11
Печать  
Еще немного выскажусь.
Помимо создания своих индексов, очень хочется иметь возможность удалять те, которые создала 1С-ка...
Тогда бы можно было спокойно комментарию (общий реквизит) ставить галку Отбор и грохнуть индекс по нему. А не городить для комментария отдельную табличку, дублируя информацию в базе.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Доп. индексы на таблицы 1С
Ответ #33 - 17. Апреля 2008 :: 06:34
Печать  
Цитата:
И, блин, не видим никакого ускорения 
Слишком мало строк приходится на связывание с докЗаявкаНаСкладТЧ.

И что получается. Доп.индекс пезполезен?
  

1&&2&&3
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Доп. индексы на таблицы 1С
Ответ #34 - 17. Апреля 2008 :: 06:37
Печать  
trad писал(а) 17. Апреля 2008 :: 06:34:
И что получается. Доп.индекс пезполезен?


В данном случае - да Печаль
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Доп. индексы на таблицы 1С
Ответ #35 - 17. Апреля 2008 :: 06:46
Печать  
Цитата:
ИМХО, использование _1SCRDOC в данном случае только снизит скорость выполнения запроса.

а у тебя есть возможность проверить?
Цитата:
Select
     cd.Child_Date_Time_IDDOC
From _1scrdoc cd (nolock)
Inner Join _1sjourn j (nolock) on j.IdDocDef = 998 And j.Date_Time_IDDOC = cd.Child_Date_Time_IDDOC
Where cd.mdid = $ГрафаОтбора.ПоТоварам
   And cd.parentval = @идПолныйТовар
   And cd.Child_Date_Time_IDDOC > @Начдата And cd.Date_Time_IDDOC < @КонДатаПлюс1
   And $ОбщийРеквизит.Фирма = @идФирма
   
order by cd.Child_Date_Time_IDDOC
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Доп. индексы на таблицы 1С
Ответ #36 - 17. Апреля 2008 :: 06:50
Печать  
sadovnikov писал(а) 17. Апреля 2008 :: 06:37:
trad писал(а) 17. Апреля 2008 :: 06:34:
И что получается. Доп.индекс пезполезен?


В данном случае - да Печаль

вот и я считаю что индекс (ИДДок,Ревизит) для ТЧ малополезен при наличии PK начинающегося с ИДДок
  

1&&2&&3
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Доп. индексы на таблицы 1С
Ответ #37 - 17. Апреля 2008 :: 07:24
Печать  
Честно говоря, я в некотором офигивании...
Вот запросы:

Declare @идПолныйТовар Char(23), @Начдата Char(8), @КонДатаПлюс1 Char(8), @идФирма Char(9), @идТовар Char(9)
Set @идПолныйТовар = 'B1   C     9           '
Set @идТовар = '     9   '
Set @Начдата = '20070201'
Set @КонДатаПлюс1 = '20070301'
Set @идФирма = '     3   '

Select
     cd.Child_Date_Time_IDDOC
From
     _1scrdoc cd (nolock)
     Inner Join ЖурналДокументов j (nolock) on j.IdDocDef = 998 And j.Date_Time_IDDOC = cd.Child_Date_Time_IDDOC
Where
     cd.mdid = 3555
     And cd.parentval = @идПолныйТовар
     And cd.Child_Date_Time_IDDOC > @Начдата And cd.Child_Date_Time_IDDOC < @КонДатаПлюс1
     And j.Фирма = @идФирма
--order by cd.Child_Date_Time_IDDOC



Select
     ЖурналДокументов.Date_Time_IDDOC
From 
    ЖурналДокументов
    Left Join докЗаявкаНаСкладТЧ докЗаявкаТЧ On Right(ЖурналДокументов.Date_Time_IDDOC, 9) = докЗаявкаТЧ.IDDOC
Where
   ЖурналДокументов.Date_Time_IDDOC > @Начдата And ЖурналДокументов.Date_Time_IDDOC < @КонДатаПлюс1
   And ЖурналДокументов.Фирма = @идФирма
   And докЗаявкаТЧ.ТОвар = @идТовар
   And ЖурналДокументов.IdDocDef = 998

План выполнения - во вложении...
  

Plan.bmp ( 196 KB | Загрузки )
Plan.bmp
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Доп. индексы на таблицы 1С
Ответ #38 - 17. Апреля 2008 :: 07:26
Печать  
Select Count(*) From _1SJOURN (NoLock)   =    246 152
Select Count(*) From _1SCRDOC (NoLock)  = 1 265 483
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Доп. индексы на таблицы 1С
Ответ #39 - 17. Апреля 2008 :: 07:38
Печать  
первый план вполне нарядный  Очень довольный
и каков результат(вывод): отбор vs доп.индекс?
  

1&&2&&3
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Доп. индексы на таблицы 1С
Ответ #40 - 17. Апреля 2008 :: 07:40
Печать  
trad писал(а) 17. Апреля 2008 :: 07:38:
первый план вполне нарядный  Очень довольный
и каков результат(вывод): отбор vs доп.индекс?


Так на плане видно, какой вывод...
Все, пересматриваю свое отношения к графам отбора...
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Доп. индексы на таблицы 1С
Ответ #41 - 17. Апреля 2008 :: 07:44
Печать  
если по общему реквизиту Фирма есть отбор, то можно еще несколько оптимизировать мой запрос и избавиться от лукапа.
Select  
    cd.Child_Date_Time_IDDOC  
From  
    _1scrdoc cd (nolock)  
    Inner Join ЖурналДокументов j (nolock) on j.IdDocDef = 998 And j.Date_Time_IDDOC = cd.Child_Date_Time_IDDOC  
    Inner Join ЖурналДокументов j2 (nolock) on j2.Фирма = @идФирма And j.Date_Time_IDDOC = cd.Child_Date_Time_IDDOC  
Where  
    cd.mdid = 3555
    And cd.parentval = @идПолныйТовар  
    And cd.Child_Date_Time_IDDOC > @Начдата And cd.Child_Date_Time_IDDOC < @КонДатаПлюс1  
--order by cd.Child_Date_Time_IDDOC
  

1&&2&&3
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Доп. индексы на таблицы 1С
Ответ #42 - 17. Апреля 2008 :: 07:46
Печать  
trad писал(а) 17. Апреля 2008 :: 07:44:
если по общему реквизиту Фирма есть отбор, то можно еще несколько оптимизировать мой запрос и избавиться от лукапа.


В частном случае - да. Но в реальной жизни высе равно придется что-нибудь из журнала выковыривать: контрагента, признак проведения и т.д.
А, так как запросы формируются динамически, то фиг за всем уследишь...
  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Доп. индексы на таблицы 1С
Ответ #43 - 17. Апреля 2008 :: 07:48
Печать  
trad писал(а) 17. Апреля 2008 :: 07:44:
если по общему реквизиту Фирма есть отбор...


Кстати, а куда бы он (отбор) нафиг делся-то? Иначе бы колонки не было в _1SJOURN  Подмигивание
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Доп. индексы на таблицы 1С
Ответ #44 - 17. Апреля 2008 :: 07:49
Печать  
Позволю себе резюмировать, еще раз отвечая на вопрос: "А почему не прижилось?".
Передо мной не вставало таких задачь, для эффективного (приемлимого) решения которых, было бы не достаточно штатных средств оптимизации БД и было бы крайне необходимо прибегать к доп.индексам.
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Доп. индексы на таблицы 1С
Ответ #45 - 17. Апреля 2008 :: 07:50
Печать  
sadovnikov писал(а) 17. Апреля 2008 :: 07:48:
Кстати, а куда бы он (отбор) нафиг делся-то? Иначе бы колонки не было в _1SJOURN  Подмигивание
ааа, ну да, ну да
  

1&&2&&3
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать