Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Создание и использование дополнительных индексов MS Sql (число прочтений - 8662 )
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Создание и использование дополнительных индексов MS Sql
13. Мая 2011 :: 03:42
Печать  
Извините, уважаемые модераторы форума, что пишу не в нужном разделе. Просто нужный раздел сейчас недоступен(Ошибка:
Код
Выбрать все
Невозможно открыть ./Messages/1305101580.txt
Подробно: No such file or directory 

).
 Мой вопрос заключается в следующем: недавно наткнулся на infostart на любопытный топик http://infostart.ru/public/84501/ про использование дополнительных индексов.
Суть: с помощью плагина во вложении можно создавать свои дополнительные индексы в MS SQL для 1с.
К сожалению, в нём не освещены два момента. Первый - как создать/изменить файл 1cv7.ddx из которого будут браться доп. индексы. Второй - как сделать так, чтобы 1с строила свои выборки с учетом доп. индексов(достаточно ли их просто добавить или нужно вносить изменения в хранимые процедуры? Или ещё как-то?).  
Если кто-то подобным функционалом пользовался или хотя бы разбирался в нем, подскажите, как оптимально создать доп. индексы и заставить 1с их использовать.
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
classic
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 330
Местоположение: г. Харьков
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Создание и использование дополнительных индексов MS Sql
Ответ #1 - 13. Мая 2011 :: 05:59
Печать  
ddx - создавай ручками, ручками правь и редактируй.
Индексы использует не 1С, а sql сервер, у него достаточно могучий оптимизатор, и он сам выбирает оптимальные варианты выполнения запроса, т. е. ничего дополнительно делать не нужно.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Создание и использование дополнительных индексов MS Sql
Ответ #2 - 13. Мая 2011 :: 06:21
Печать  
classic писал(а) 13. Мая 2011 :: 05:59:
... т. е. ничего дополнительно делать не нужно.

ну только самую малость - писать запросы с включенным мозгом Улыбка
  

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


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Создание и использование дополнительных индексов MS Sql
Ответ #3 - 13. Мая 2011 :: 07:09
Печать  
Однако стоит помнить ответ на вопрос 64
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Создание и использование дополнительных индексов MS Sql
Ответ #4 - 13. Мая 2011 :: 08:41
Печать  
Dmitry The Wing писал(а) 13. Мая 2011 :: 07:09:
Однако стоит помнить ответ на вопрос 64

То что сказано в этом ответе есть в лицензионном соглашении на 1С:Предприятие 8.
Но 1С:Предприятие 7.7 это другой программный продукт и к нему нет лиц.соглашения.
  

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



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Создание и использование дополнительных индексов MS Sql
Ответ #5 - 13. Мая 2011 :: 08:59
Печать  
А т.к. для 1С:Предприятие 7.7 нет никаких дополнительных соглашений в т.ч. лицензионных, то действует ГК РФ часть 4 Статья 1280.
http://www.gk-rf.ru/statia1280

ps
конечно, если получиться доказать, что добавление индекса осуществляется "исключительно в целях их (программы для ЭВМ или базы данных) функционирования"
  

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


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Создание и использование дополнительных индексов MS Sql
Ответ #6 - 13. Мая 2011 :: 11:25
Печать  
trad писал(а) 13. Мая 2011 :: 08:41:
Dmitry The Wing писал(а) 13. Мая 2011 :: 07:09:
Однако стоит помнить ответ на вопрос 64

То что сказано в этом ответе есть в лицензионном соглашении на 1С:Предприятие 8.

ОФФ. ИМХО даже наличие лицензионного соглашения не отменяет действие законов об авторском праве.
Более того - лицензионное соглашение 1С противоречит в части вопроса 64 закону РФ Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Создание и использование дополнительных индексов MS Sql
Ответ #7 - 13. Мая 2011 :: 12:46
Печать  
artbear писал(а) 13. Мая 2011 :: 11:25:
ОФФ. ИМХО даже наличие лицензионного соглашения не отменяет действие законов об авторском праве.
конечно не отменяет, а дополняет.
Цитата:
Более того - лицензионное соглашение 1С противоречит в части вопроса 64 закону РФ Улыбка
например?
  

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Создание и использование дополнительных индексов MS Sql
Ответ #8 - 13. Мая 2011 :: 15:31
Печать  
Dmitry The Wing писал(а) 13. Мая 2011 :: 07:09:
Однако стоит помнить ответ на вопрос 64

  Давайте не будем флудить в этом топике на тему законности использования дополнительных индексов. Топик был создан для обсуждения технической стороны вопроса. Если Вас интересует эта сторона, то задайте вопрос представителям компании SoftPoint, для которых это хлеб.
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Создание и использование дополнительных индексов MS Sql
Ответ #9 - 13. Мая 2011 :: 16:23
Печать  
al_zzz писал(а) 13. Мая 2011 :: 03:42:
Второй - как сделать так, чтобы 1с строила свои выборки с учетом доп. индексов(достаточно ли их просто добавить или нужно вносить изменения в хранимые процедуры? Или ещё как-то?).  

Если твой отчет то для использования конкретного индекса можешь задать его явно.( если вообще не укажашь ) то sql сам выберет
оптимальный с его точки зрения индекс.

Если говорить об внутренностях 1с то в большинстве случаев прописан явный индекс и поэтому твой индекс не будет использован.

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


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Создание и использование дополнительных индексов MS Sql
Ответ #10 - 13. Мая 2011 :: 16:29
Печать  
al_zzz писал(а) 13. Мая 2011 :: 03:42:
 подскажите, как оптимально создать доп. индексы и заставить 1с их использовать.

ну нет универсальных вещей.  Создание индекса граничит с искуством.
Только не делай много индексов на таблицу - это плохо тем
что sql поддерживает индексы актуальными а это ресурсы сервера
второе если индексов очень много то катастрофически растет количество планов выполнения это влечет большие затраты на формирование плана выполнения и уменьшается вероятность что наилучший план будет найден.
  
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Создание и использование дополнительных индексов MS Sql
Ответ #11 - 13. Мая 2011 :: 16:38
Печать  
Z1 писал(а) 13. Мая 2011 :: 16:29:
al_zzz писал(а) 13. Мая 2011 :: 03:42:
 подскажите, как оптимально создать доп. индексы и заставить 1с их использовать.

ну нет универсальных вещей.  Создание индекса граничит с искуством.
Только не делай много индексов на таблицу - это плохо тем
что sql поддерживает индексы актуальными а это ресурсы сервера
второе если индексов очень много то катастрофически растет количество планов выполнения это влечет большие затраты на формирование плана выполнения и уменьшается вероятность что наилучший план будет найден.

Я так понимаю, Вы используете доп. индексы. А сами хранимые процедуры под них переписываете? Насколько это сложно? 
Можете для примера свой ddx выложить?
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Создание и использование дополнительных индексов MS Sql
Ответ #12 - 13. Мая 2011 :: 16:47
Печать  
al_zzz писал(а) 13. Мая 2011 :: 16:38:
Z1 писал(а) 13. Мая 2011 :: 16:29:
al_zzz писал(а) 13. Мая 2011 :: 03:42:
 подскажите, как оптимально создать доп. индексы и заставить 1с их использовать.

ну нет универсальных вещей.  Создание индекса граничит с искуством.
Только не делай много индексов на таблицу - это плохо тем
что sql поддерживает индексы актуальными а это ресурсы сервера
второе если индексов очень много то катастрофически растет количество планов выполнения это влечет большие затраты на формирование плана выполнения и уменьшается вероятность что наилучший план будет найден.

Я так понимаю, Вы используете доп. индексы. А сами хранимые процедуры под них переписываете? Насколько это сложно?  
Можете для примера свой ddx выложить?

я не использую доп индексы.
даже наоборот хочу удалить несколько ( но боюсь закона подлости  что все сломается когда я буду в отпуске и будет маленькая-большая катастрофа ).

вместо доп индексов можно оптимизировать запросы.
также можно(и это я делаю) новые сущности  вводить не через объекты 1с ,
а через таблицы sql ( естественно используя нормализацию )
ну а вот тут-то уже и создаются и структура данных и структура индексов и чтобы эти сущности оптимально(по крайней мере на мой взгляд) стыковались с родными 1сsql  таблицами.


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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Создание и использование дополнительных индексов MS Sql
Ответ #13 - 16. Мая 2011 :: 05:14
Печать  
Z1 писал(а) 13. Мая 2011 :: 16:47:
вместо доп индексов можно оптимизировать запросы.
также можно(и это я делаю) новые сущности  вводить не через объекты 1с ,
а через таблицы sql ( естественно используя нормализацию )
ну а вот тут-то уже и создаются и структура данных и структура индексов и чтобы эти сущности оптимально(по крайней мере на мой взгляд) стыковались с родными 1сsql  таблицами.




А как быть с новыми сущностями, если база распределенная? Они же не будут выгружаться.
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Создание и использование дополнительных индексов MS Sql
Ответ #14 - 16. Мая 2011 :: 08:50
Печать  
al_zzz писал(а) 16. Мая 2011 :: 05:14:
Z1 писал(а) 13. Мая 2011 :: 16:47:
вместо доп индексов можно оптимизировать запросы.
также можно(и это я делаю) новые сущности  вводить не через объекты 1с ,
а через таблицы sql ( естественно используя нормализацию )
ну а вот тут-то уже и создаются и структура данных и структура индексов и чтобы эти сущности оптимально(по крайней мере на мой взгляд) стыковались с родными 1сsql  таблицами.




А как быть с новыми сущностями, если база распределенная? Они же не будут выгружаться.


а. либо никак
б либо сущности держать во внешней базе и тогда доступ к этой
базе через интернет.( на малых объемах передаваемой информации ) это работает хорошо.


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