Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Создание своих индексов по таблице документов, глюки с IDDOC при записи. (число прочтений - 6752 )
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Создание своих индексов по таблице документов, глюки с IDDOC при записи.
30. Августа 2010 :: 19:39
Печать  
Попытался сделать свои доп. индексы по полям шапки таблицы. Все сделал, протестировал в монопольном режиме - все хорошо работает. Но вот в разделенном режиме при попытке отредактировать уже созданный документ и его записи выдает ошибку con not insert duplicate key и делает ссылку на родной индекс по IDDOC. Если убрать новый доп. индекс и переиндексировать таблицу - то проблема пропадает. Может кто сталкивался с такими глюками 1С-ки при добавлении своих индексов?
  
Наверх
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #1 - 31. Августа 2010 :: 05:13
Печать  
Да нет - не сталкивались. Какая версия SQL, покажи как индексы создаешь (код)
  
Наверх
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #2 - 31. Августа 2010 :: 05:59
Печать  
SQL 2008
(Microsoft SQL Server 2008 (SP1) - 10.0.2723.0 (Intel X86)   Jul 10 2009 01:41:08   Copyright (c) 1988-2008 Microsoft Corporation  Enterprise Edition on Windows NT 5.2 <X86> (Build 3790: Service Pack 2) )

Индексы создает 1С-ка (посредством файла ddx), скрипт готового индекса:
Код
Выбрать все
CREATE NONCLUSTERED INDEX [IX_1SSH_CONTR] ON [dbo].[DH2337]
(
	[SP2312] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY] 



в ddx строка выглядит так:
Код
Выбрать все
X=DH2337 %I=IX_1SSH_CONTR                  |IX_1SSH_CONTR |0     |SP2312                                                      |0           



Проблема вся в том, что когда не в монопольном режиме работать, тогда почему то 1С-ка начинает глючить с ID кодом документа.
  
Наверх
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #3 - 31. Августа 2010 :: 06:17
Печать  
И глюк скорее всего происходит в момент записи двух документов и возникновении взаимной блокировки таблицы журналов или DH*. При этом гибкие блокировки не используются, используется только метод ROMIX-а по обходу цикла в момент ожидания блокировки (odbc33.dll: http://x-romix.narod.ru/vk_TerminalSleep.rar).
  
Наверх
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #4 - 31. Августа 2010 :: 07:32
Печать  
(0) Приведи точный текст сообщения.

PS также профайлером можешь найти оператор insern или
update на чем все валиться.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #5 - 31. Августа 2010 :: 07:33
Печать  
pvase писал(а) 31. Августа 2010 :: 06:17:
И глюк скорее всего происходит в момент записи двух документов и возникновении взаимной блокировки таблицы журналов или DH*. При этом гибкие блокировки не используются, используется только метод ROMIX-а по обходу цикла в момент ожидания блокировки (odbc33.dll: http://x-romix.narod.ru/vk_TerminalSleep.rar).

Если на время отключить vk_TerminalSleep subj возникает или нет.

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



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #6 - 31. Августа 2010 :: 08:18
Печать  
Дело в том, что ошибку можно отловить только в рабочей базе. А экспериментировать на рабочей базе во время работы как то не хочется. В тестовой никак не могу создать условий, при которых появиться такой глюк.

А ошибка простая пример во вложении.
  

errorSQL.jpg ( 34 KB | Загрузки )
errorSQL.jpg
Наверх
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #7 - 31. Августа 2010 :: 08:39
Печать  
Тогда получается что при записи документа DH2337
у тебя идет какая то другая запись в документ dh16707
может как раз у тебя в некоторых случаях
документ dh16707 новый именно тогда для него 1с выделяет
iddoc выделяет неправильно вот и получаешь subj
Не в модуле проведения все это ?

также что в определении индекса означает
IGNORE_DUP_KEY = OFF ( я не работал с sql2008)
может все дело в этом.
  
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #8 - 31. Августа 2010 :: 14:12
Печать  
Да это я такой пример привел. Вообще индексы были как для таблицы  DH2337 так и для той что в примере.
  
Наверх
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #9 - 31. Августа 2010 :: 15:47
Печать  
Цитата:
GNORE_DUP_KEY = { ON | OFF }
Определяет реакцию на ошибку, возникшую из-за дублирования значений ключа при вставке нескольких строк в уникальный кластеризованный или уникальный некластеризованный индекс. Значение по умолчанию — OFF.

ON
Выдае��ся предупреждение, а строки с неуникальными ключами не вставляются.

OFF
Выдается сообщение об ошибке и происходит откат всей транзакции INSERT.

Аргумент IGNORE_DUP_KEY применяется только к операциям вставки, выполняемым после создания или перестройки индекса. Во время операций с индексами этот параметр не используется.

взято из http://msdn.microsoft.com/ru-ru/library/ms188783(SQL.90).aspx
т.е. просто получается у тебя
primary key не уникалный на этой таблице.
, а совпадение что все работает в монопольном режиме случайность ( не попадал на те данные). на тех же данных свалишься и в монопольном режиме.

PS (0) похоже у тебя серьезные проблемы с базой.
ищи на этом сайте мою обработку "проверьте ваши регистры"
проверяет не только регистры но и документы и проверяй базу как можно скорее.

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



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #10 - 31. Августа 2010 :: 18:43
Печать  
С Базой все нормально, убрал индексы + переиндексация и все заработало. Просто похоже что 1С-ка как то странно ведет себя с индексами, толи она смотрит первый попавшийся, то ли еще какие глюки - отловить сложно из за глюков в рабочей базе, а ждать и отлаживать пока все ждут меня - такого не поймут ни директор ни сотрудники.
  
Наверх
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #11 - 01. Сентября 2010 :: 10:32
Печать  
pvase писал(а) 31. Августа 2010 :: 18:43:
С Базой все нормально, убрал индексы + переиндексация и все заработало. Просто похоже что 1С-ка как то странно ведет себя с индексами, толи она смотрит первый попавшийся, то ли еще какие глюки - отловить сложно из за глюков в рабочей базе, а ждать и отлаживать пока все ждут меня - такого не поймут ни директор ни сотрудники.


Цитата:
С Базой все нормально

слишком сильное утверждение после subj
Еще одна другая Проверка базы никогда не повредит

Цитата:
убрал индексы + переидексация

- при этом у тебя идет полное перестроение индекса. насколько я знаю при построении(перестроении) индекса не производиться проверка на уникальность.


Цитата:
отловить сложно из за глюков в рабочей базе, а ждать и отлаживать пока все ждут меня - такого не поймут ни директор ни сотрудники.

Делай логирование либо через запись в файл на диск с:\
(если терминал то можно файл назвать используя @@spid) или
пиши логи в ms sql в другую базу чтобы  запись осталась даже при вылете. после того как найдешь где вылетает то можно обсуждать дальше.

насколько я вижу падение возможно в двух случаях
1.Либо  При записи из итерактивной формы существующего документа (у такого документа уже есть iddoc)

2.либо при выполнении команды Док.Записать() ( в этом случае важно документ новый или уже есть в базе).
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #12 - 02. Сентября 2010 :: 14:05
Печать  
приводить неполные скрипты схемы, давать скрины ошибкок от других таблиц, делать скорополительные выводы...
уж будь добр, приведи скрипты схемы таблицы.
  
Наверх
ICQ  
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #13 - 09. Сентября 2010 :: 10:38
Печать  
Наконец то выловил баг, но вот как исправить - не знаю.
Вот что делает 1С-ка при записи документа:
Код
Выбрать все
exec sp_executesql N'
	Update DH2337
	set  
		IDDOC=@P1,
		SP17145=@P2,
		SP2311=@P3,
		SP2313=@P4,
		SP2314=@P5,
		SP2315=@P6,
		SP6004=@P7,
		SP2317=@P8,
		SP2318=@P9,
		SP2319=@P10,
		SP2320=@P11,
		SP2321=@P12,
		SP15782=@P13,
		SP15783=@P14,
		SP15784=@P15,
		SP15796=@P16,
		SP15859=@P17,
		SP16323=@P18,
		SP17146=@P19,
		SP18397=@P20,
		SP18910=@P21,
		SP20122=@P22,
		SP20602=@P23,
		SP20807=@P24,
		SP20952=@P25,
		SP21433=@P26,
		SP2330=@P27,
		SP2331=@P28,
		SP2332=@P29,
		SP2333=@P30,
		SP2334=@P31,
		SP17181=@P32,
		SP1853=@P33,
		SP1855=@P34
	where  SP2312=@P35
	',
	N'@P1 varchar(9),
	@P2 varchar(9),
	@P3 varchar(9),
	@P4 varchar(13),
	@P5 varchar(9),
	@P6 numeric(9,5),
	@P7 datetime,
	@P8 varchar(9),
	@P9 varchar(9),
	@P10 varchar(9),
	@P11 varchar(9),
	@P12 varchar(9),
	@P13 varchar(9),
	@P14 numeric(9,5),
	@P15 datetime,
	@P16 varchar(9),
	@P17 varchar(15),
	@P18 varchar(9),
	@P19 numeric(1,0),
	@P20 varchar(9),
	@P21 numeric(1,0),
	@P22 varchar(9),
	@P23 numeric(1,0),
	@P24 numeric(1,0),
	@P25 numeric(6,0),
	@P26 varchar(9),
	@P27 numeric(13,2),
	@P28 numeric(11,3),
	@P29 numeric(14,3),
	@P30 numeric(14,3),
	@P31 numeric(14,3),
	@P32 numeric(3,0),
	@P33 varchar(9),
	@P34 text,
	@P35 varchar(9)',
	'  IZ2C   ',
	'    2Q   ',
	'     7CB ',
	' 1MZ  CXNN   ',
	'     1   ',
	1.00000,
	'2010-07-29 00:00:00',
	'     1ZG ',
	'    VK   ',
	'    2U   ',
	'    V3   ',
	'    XD   ',
	'     8   ',
	1000.00000,
	'2010-09-06 00:00:00',
	'     1CB ',
	'               ',
	'     0   ',
	0,
	'     1   ',
	0,
	'     7   ',
	0,
	0,
	29,
	'     F   ',
	12931.38,
	0,
	12931.380,
	2586.276,
	15517.656,
	0,
	'     1   ',
	'аванс 7800',
	'   1PQ   ' 



Обратите внимание на строку: "where  SP2312=@P35"
т.е. вместо того чтобы использовать IDDOC 1С-ка использует поле дополнительно вручную созданного индекса. И конечно же получается ошибка:
Violation of PRIMARY KEY constraint 'PK_DH2337'. Cannot insert duplicate key in object 'dbo.DH2337'.
  
Наверх
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #14 - 09. Сентября 2010 :: 10:47
Печать  
Почему берет не IDDOC а другое поле - скорее всего можно понять только используя дизасемблер, просто анализ Bkend.dll не дал возможности обнаружить где происходит подмена.
Ясно одно, 1С-ка не может работать с таблицами DH где больше одного индекса.
Или же использовать составной индекс и вторым полем пихать IDDOC, тогда поле будет уникальным и тогда 1С-ка будет использовать аткое условие:
Код
Выбрать все
where  IDDOC=@P34 and SP2312=@P35 


Бред конечно, но как временное решение проходит, но все же проблема есть.
  
Наверх
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #15 - 09. Сентября 2010 :: 11:09
Печать  
pvase писал(а) 09. Сентября 2010 :: 10:47:
Почему берет не IDDOC а другое поле - скорее всего можно понять только используя дизасемблер, просто анализ Bkend.dll не дал возможности обнаружить где происходит подмена.
Ясно одно, 1С-ка не может работать с таблицами DH где больше одного индекса.
Или же использовать составной индекс и вторым полем пихать IDDOC, тогда поле будет уникальным и тогда 1С-ка будет использовать аткое условие:
Код
Выбрать все
where  IDDOC=@P34 and SP2312=@P35 


Бред конечно, но как временное решение проходит, но все же проблема есть.

как это проходит
когда у тебя @P34 = 'аванс 7800'
  
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #16 - 09. Сентября 2010 :: 11:23
Печать  
Z1 писал(а) 09. Сентября 2010 :: 11:09:
как это проходит
когда у тебя @P34 = 'аванс 7800'


Для упрощения я не приводил второй запрос полностью, во втором случае @P34 = '  IZ2C   '
  
Наверх
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #17 - 09. Сентября 2010 :: 11:44
Печать  
pvase писал(а) 09. Сентября 2010 :: 11:23:
Z1 писал(а) 09. Сентября 2010 :: 11:09:
как это проходит
когда у тебя @P34 = 'аванс 7800'


Для упрощения я не приводил второй запрос полностью, во втором случае @P34 = '  IZ2C   '

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

или вместо SP2312 там тоже нечто другое ?
  
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #18 - 09. Сентября 2010 :: 12:31
Печать  
Z1 писал(а) 09. Сентября 2010 :: 11:44:
да не может такого быть потому что 1с идентефикаторы ( реквизиты документов ) нумерует последовательно.

или вместо SP2312 там тоже нечто другое ?


Не помню, запрос я уже удалил, вопрос не в том. 1С строго делает апдейт с условием по полям нового индекса, вот в этом проблема.
  
Наверх
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #19 - 09. Сентября 2010 :: 12:36
Печать  
Выкладывай здесь свой файл dds
  
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #20 - 09. Сентября 2010 :: 13:35
Печать  
Выкладываю рабочий (с индексами включая IDDOC)
  

1Cv7dds.zip ( 73 KB | Загрузки )
Наверх
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #21 - 09. Сентября 2010 :: 13:41
Печать  
Дополнительные индексы ставь после основных а наоборот
т.е вместо

#Доп. индекс Документ.Счет
I=IX_1SSH_CONTR                  |IX_1SSH_CONTR |1     |SP2312,IDDOC                                                |0          
I=IX_1SSH_MANAG                  |IX_1SSH_MANAG |1     |SP17145,IDDOC                                               |0          
#----Indexes------
# Name                           |Descr         |Unique|Indexed fields                                              |Type      
I=PK_DH2337                      |of IDDOC      |1     |IDDOC                                                       |1          



надо

#----Indexes------
# Name                           |Descr         |Unique|Indexed fields                                              |Type      
I=PK_DH2337                      |of IDDOC      |1     |IDDOC                                                       |1          
#Доп. индекс Документ.Счет
I=IX_1SSH_CONTR                  |IX_1SSH_CONTR |1     |SP2312,IDDOC                                                |0          
I=IX_1SSH_MANAG                  |IX_1SSH_MANAG |1     |SP17145,IDDOC                                               |0          


PS  это естественно для всех документов а не только для одного.
  
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #22 - 09. Сентября 2010 :: 13:50
Печать  
Спасибо, но как, если у меня индексы вносятся через 1cv7.ddx?
  

1cv7ddx.zip ( 0 KB | Загрузки )
Наверх
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #23 - 09. Сентября 2010 :: 14:08
Печать  
пост #22 мне не очень понятен.
ты 21 или подтверди или опровергни.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #24 - 09. Сентября 2010 :: 17:38
Печать  
pvase писал(а) 09. Сентября 2010 :: 13:50:
Спасибо, но как, если у меня индексы вносятся через 1cv7.ddx?

доработать ExtDD.vbs
не?
  

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



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #25 - 09. Сентября 2010 :: 17:42
Печать  
или поискать готовое решение. например:
http://www.1cpp.ru/forum/YaBB.pl?num=1188387114/11#11
  

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



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #26 - 09. Сентября 2010 :: 18:50
Печать  
Z1 писал(а) 09. Сентября 2010 :: 14:08:
пост #22 мне не очень понятен.
ты 21 или подтверди или опровергни.

Извините, не мог раньше ответить. Помогло, если первым идет стандартный индекс, то все Ok. Видимо 1С просто берет из DDS первый индекс и по нему делает UPDATE, оно и понятно, ведь по умолчанию индекс то только один.
  
Наверх
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #27 - 09. Сентября 2010 :: 19:21
Печать  
trad писал(а) 09. Сентября 2010 :: 17:42:
или поискать готовое решение. например:
http://www.1cpp.ru/forum/YaBB.pl?num=1188387114/11#11


Спасибо, помогло, вспомнил заодно свой пост, где столкнулся с подобной проблемой, правда там результат был другой.
  
Наверх
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #28 - 16. Сентября 2010 :: 06:04
Печать  
(pvase) Я тут подумал а что если вместо дополнительного индекса использовать индексированное представление ( конечно если версия sql позволяет )
  
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #29 - 16. Сентября 2010 :: 11:23
Печать  
Z1 писал(а) 16. Сентября 2010 :: 06:04:
(pvase) Я тут подумал а что если вместо дополнительного индекса использовать индексированное представление ( конечно если версия sql позволяет )


Идея хорошая (позволяет SQL 2008), но надо тестировать, насколько это будет производительнее чем стандартный индекс по таблице. К тому же есть еще одно предложение, разделить таблицы, на 1С-кую (оставить только родные реквизиты 1С, ДатаДок, НомерДок) + свою, в ней все остальные реквизиты (правда придеться по-программировать с записью элементов). В такой схеме можно разделить данные, также упростить формы списка элементов (если использовать родные формы списка а не ТабличноеПоле).
  
Наверх
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #30 - 16. Сентября 2010 :: 11:33
Печать  
ну вроде как для  индексированного представления получишь кластерный индекс
<ID_Реквизита><IDDOC>
ну этот индекс вроде короче по длине чем дополнительный индекс
по шапке :
<ID_Реквизита><IDDOC>  + <IDDOC>кл.индекс
Но это надо смотреть как этот индекс будет использоваться и как часто.
Второй как бы неявный выигрыш  индексированное представление может подойти и для каких то других запросов если явно не указан хинт индекса.
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Создание своих индексов по таблице документов, глюки с IDDOC при записи.
Ответ #31 - 19. Сентября 2010 :: 07:38
Печать  
Вася, можно таблицу переопределить, следовательно, будет возможность манипулировать индексами, как хочешь.
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать