|
Ошибка в базе: The maximum key length is 900 bytes | ☑ | ||
---|---|---|---|---|
0
nikolas260579
16.04.20
✎
18:34
|
Здравствуйте. В одной из баз вышла ошибка СУБД:
Microsoft SQL Server Native Client 10.0: Warning! The maximum key length is 900 bytes. The index '_Reference45_ByParentField4819_RLSRNG' has maximum length of 1033 bytes. For some combination of large values, the insert/update operation will fail. HRESULT=80040E14, HRESULT=80040E14, SQLSrvr: SQLSTATE=42000, state=3, Severity=10, native=1946, line=1 SQLSrvr: SQLSTATE=01000, state=1, Severity=0, native=1945, line=1 Таблица _Reference45 - это справочник контрагентов. А вот как дальше расшифровать? Можно ли прямо в базе нужный объект найти, из-за чего ошибка пошла? Я понимаю, что строка где-то, но где? |
|||
1
Волшебник
модератор
16.04.20
✎
18:39
|
индекс по полю Родитель.
наверное вложенность большая |
|||
2
Cyberhawk
16.04.20
✎
18:40
|
Ну, какой-то из строковых реквизитов длиной эдак 1024 символа проиндексирован
|
|||
3
nikolas260579
16.04.20
✎
18:42
|
А конкретный объект в базе никак не найти? Как можно хотя бы по индексу узнать, какой родитель?
|
|||
4
H A D G E H O G s
16.04.20
✎
18:45
|
(3) Найди реквизит Field4819 и посмотри самый длинный.
|
|||
5
Волшебник
модератор
16.04.20
✎
18:46
|
вызови ПолучитьСтруктуруХраненияДанных и ищи там поле Field4819, узнай имя реквизита и сними по нему индекс
|
|||
6
H A D G E H O G s
16.04.20
✎
18:50
|
Ну или
SELECT TOP (100) [_IDRRef] ,[_Description] , ([_Fld4334]) FROM [DB].[dbo].[_Reference185] order by len([_Fld4334]) desc |
|||
7
nikolas260579
16.04.20
✎
19:06
|
(5) Что-то типа этого?
ТаблицаСтруктуры = ПолучитьСтруктуруХраненияБазыДанных(МассивОбъектов, Истина); Для Каждого Таблица Из ТаблицаСтруктуры Цикл Сообщить(Строка(""+Таблица.Метаданные + " — " + Таблица.ИмяТаблицыХранения +" - "+Таблица.Назначение)); Для Каждого Поле Из Таблица.Поля Цикл Сообщить(Строка("Поле = "+Поле.ИмяПоляХранения + " — " + Поле.ИмяПоля+" - "+Поле.Метаданные)); КонецЦикла; КонецЦикла; |
|||
8
nikolas260579
16.04.20
✎
19:10
|
Только так я пока не нашёл нужный индекс, понял только, что это основная таблица справочника
|
|||
9
nikolas260579
16.04.20
✎
19:21
|
(3) Как это можно сделать? Наведите на мысль, пожалуйста
|
|||
10
nikolas260579
16.04.20
✎
19:24
|
Имею в виду, как реквизит по этому индексу найти
|
|||
11
Cyberhawk
16.04.20
✎
19:39
|
(4) (5) Выдыхайте, это NG.
Придется сначала триггером ловить их создание. |
|||
12
H A D G E H O G s
16.04.20
✎
19:43
|
(11) NG NG, но имя поля то есть.
|
|||
13
МихаилМ
16.04.20
✎
19:51
|
(11) в этом случае без триггера можно справиться.
(0) справиться можно отменить индексацию или длину поля таблицы. суффикс "NG" указывает на таблицу , созданную при реструктизации. |
|||
14
nikolas260579
16.04.20
✎
19:58
|
(13) самописные реквизиты все стоят "не индексировать".
|
|||
15
nikolas260579
16.04.20
✎
20:06
|
Реструктуризация остановилась с этой ошибкой на 43700 элементах справочника, их сейчас 43782
|
|||
16
H A D G E H O G s
16.04.20
✎
20:08
|
Позовите специалиста
|
|||
17
nikolas260579
16.04.20
✎
20:10
|
По длине там реквизит "Штрихкод" строка 200 символов, и "КодКарты" тоже такой же. Я не спец, но хочу разобраться.
|
|||
18
H A D G E H O G s
16.04.20
✎
20:40
|
Я могу удаленно подключиться, пиши на [email protected]
|
|||
19
nikolas260579
26.04.20
✎
19:19
|
Руки дошли до базы спустя 10 дней. (2) был близок к истине. Реквизит "Комментарий", длина 500 символов, стояло "Индексировать". Убрал. Работает.
|
|||
20
trad
26.04.20
✎
23:59
|
Если кто-то проиндексировал комментарий, то не исключено, что все подряд там проиндексировал. Обрати на это внимание
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |