powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Индекс по коллекции в Cache' 5.2.x и Ensemble 4.0.y
4 сообщений из 4, страница 1 из 1
Индекс по коллекции в Cache' 5.2.x и Ensemble 4.0.y
    #34507948
VadimF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Cache' 5.2.x и Ensemble 4.0.y можно строить индекс по коллекции, который ускорит выполнение SQL-запросов.

Вот пример:

Есть класс

Код: plaintext
1.
2.
3.
4.
5.
6.
Class Test.CollectionTest Extends (%Persistent, %Populate, %XML.Adaptor) 
{ 
Property Pets As array Of %String; 
Property Name As %String; 
Index PetsIndex On(Pets(ELEMENTS),Pets(KEYS)); 
}

Теперь делаем SQL-запрос:
Код: plaintext
select * from Test.CollectionTest_Pets where Pets like 'A%'

И смотрим план запроса:

План запроса
Отосительная стоимость = 41587
* Call module B, which populates temp-file A.
* Read temp-file A, looping on ID.
* For each row:
Read master map Test.CollectionTest_Pets.IDKEY, using the given idkey value.
Output the row.
module B
* Read index map Test.CollectionTest_Pets.PetsIndex, looping on %SQLUPPER(Pets) (with a %STARTSWITH range condition), element_key, and CollectionTest.
* For each row:

Add a row to temp-file A, subscripted by ID, with no node data.

Любителям коллекций может пригодиться.

Вадим
...
Рейтинг: 0 / 0
Индекс по коллекции в Cache' 5.2.x и Ensemble 4.0.y
    #34507994
VadimF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример, который я прислал, - это случай, когда коллекция проецируется, как подтаблица.
Если коллекция не проецируется, как таблица, то есть FOR SOME %ELEMENT Predicate

Пример из SAMPLES

Код: plaintext
1.
2.
SELECT Name,FavoriteColors
FROM Sample.Person
WHERE FOR SOME %ELEMENT(FavoriteColors) (%VALUE='Red')

Вадим
...
Рейтинг: 0 / 0
Индекс по коллекции в Cache' 5.2.x и Ensemble 4.0.y
    #34508410
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем вообще использовать эти "коллекции"?
Насколько я помню и раньше часто встречались вопросы типа:
- Вот у меня есть коллекция... Теперь я столкнулся с проблемой "блаблабла"... Что мне теперь делать? :(
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Индекс по коллекции в Cache' 5.2.x и Ensemble 4.0.y
    #34508850
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VadimFВ Cache' 5.2.x и Ensemble 4.0.y можно строить индекс по коллекции, который ускорит выполнение SQL-запросов.
Индексировать коллекции и списки можно было и раньше. Индексы в самом деле строились и поддерживались, но SQL запросы их почему-то никак не могли использовать. За второй шаг - отдельный респект разработчикам. Доделали, значит.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Индекс по коллекции в Cache' 5.2.x и Ensemble 4.0.y
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]