|
Индекс для длинной строки
|
|||
---|---|---|---|
#18+
Есть строковое свойство длиной около 1000 символов. Вернее, раньше там были короткие записи, а теперь вот появились и длинные. Так уж вышло. Но система не может записать индекс для этих записей - SUBSCRIPT, говорит. Это так и задумано? Как обходите, кто сталкивался? Длинные строки разрешены. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2014, 08:51 |
|
Индекс для длинной строки
|
|||
---|---|---|---|
#18+
ДокументацияThe optional maxlen argument truncates the converted expression string to the specified number of characters when indexing or collating. For example, if you insert a long string with maxlen truncation, the full string is inserted and can be retrieved by a SELECT statement; the index global for this string is truncated to the specified length. This means that ORDER BY and comparison operations only evaluate the truncated index string. Such truncation is especially useful for indexing on strings that exceed the 255-character limit for Caché subscripts. When converting from non-Caché systems, some users encountered problems when they indexed on a VARCHAR(255) field and then tried to insert data into the table. With the maxlen argument, if you need to index on a long field, you can use the truncation length parameter. источник Вариант решенияIndex idxs On s As SQLUPPER(100); Property s As %VarString; ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2014, 09:23 |
|
Индекс для длинной строки
|
|||
---|---|---|---|
#18+
kolesov, если обязательно сохранить полное значение, то может сделать несколько вычисляемых полей? [s part1=$e(val,1,100)] и т.д. и по ним сделать общий индекс [on part1,part2...] ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2014, 13:10 |
|
Индекс для длинной строки
|
|||
---|---|---|---|
#18+
А много ли пользы индексировать строку длиной 1000 символов? Разбить ее на ключевые слова и индексировать их или iFind попробовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2014, 15:57 |
|
Индекс для длинной строки
|
|||
---|---|---|---|
#18+
В генераторе отчетов x.magic сортировка делается по неограниченному числу полей. То есть, формально, таким же способом можно сортировать тексты неограниченной длины и, следовательно, строить по ним индексы))... Практическое применение, конечно, не просто найти... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2014, 21:46 |
|
Индекс для длинной строки
|
|||
---|---|---|---|
#18+
servitIndex idxs On s As SQLUPPER(100); Property s As %VarString; Честно говоря, и %VarString и SQLUPPER выглядят как хреновый диагноз (пару месяцев протянешь, чувак). Практической ценности нет конечно - есть практическая проблема, когда кроме значений свойства типа "Валенок", "Хрень какая-то" и т.п. стали возникать конструкции, состоящие более чем из символов) Я не виноват( ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2014, 14:32 |
|
Индекс для длинной строки
|
|||
---|---|---|---|
#18+
kolesov, Можете привести пример sql запроса с условием по индексируемому полю? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2014, 05:22 |
|
Индекс для длинной строки
|
|||
---|---|---|---|
#18+
Petr0vi4444kolesov, Можете привести пример sql запроса с условием по индексируемому полю? Не понял вопрос. "SELECT ID from Ent where Name [ ?" например. Но у меня не доходит до этого - %Save() не выполняется по SUBSCRIPT. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2014, 14:15 |
|
Индекс для длинной строки
|
|||
---|---|---|---|
#18+
kolesov, так текущая ситуация какая - ваш вопрос решен ( Index Note On Note As SQLUPPER(255) ) или как обычно? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2014, 20:00 |
|
Индекс для длинной строки
|
|||
---|---|---|---|
#18+
kolesov , Для индексации "неограниченных" строк, а заодно и ускорения поиска, сто́ит попробовать iFind : 15885843 (и далее 15886647 , 15887128 ) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2014, 10:32 |
|
Индекс для длинной строки
|
|||
---|---|---|---|
#18+
kolesov, С таким запросом толку от индекса нет. Все равно выполняется полное сканирование таблицы. Толк будет с условиями = или %STARTSWITH. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2014, 12:59 |
|
Индекс для длинной строки
|
|||
---|---|---|---|
#18+
kolesov, столкнулись с такой же проблемой. По совету Александра Коблова будем пробовать следующее: Index idxs On s As SQLUPPER(100) [type=bitmap] НЕЖЕЛАТЕЛЬНО Лучше у поля указывать COLLATION и индексы не трогать ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2017, 14:04 |
|
Индекс для длинной строки
|
|||
---|---|---|---|
#18+
kolesov, Поскольку в любой СУБД есть сортировка по произвольному (теоретически, бесконечному) числу полей, то, значит есть и сортировка текстов произвольной длины, а не только 1000 символов. Работать это будет быстро, потому что на практике процесс будет заканчиваться, в большинстве случаев, на третьем или пятом "поле". ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2017, 18:16 |
|
|
start [/forum/topic.php?fid=39&msg=38663182&tid=1556380]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 272ms |
total: | 442ms |
0 / 0 |