powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / В каких СУБД есть такая штука...
23 сообщений из 73, страница 3 из 3
В каких СУБД есть такая штука...
    #38829676
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ещё раз ответьте четко на 3 вопроса:
1. Что такое Index Only Scan?
2. Что содержится в B-tree индексе, перечислите?
2.a) b-tree (сам индекс)
2.b) помимо самого индекса, в листьях содержаться ещё и поля по которым он построен
2.c) в листьях rowid (ссылка на строку в таблице)
3. Что содержится в Index Organized Table?
3.a) b-tree (сам индекс)
3.b) помимо самого индекса, в листьях содержаться ещё и поля по которым он построен
3.c) в листьях остальные столбцы, исключая индекс

В вопросах 2 и 3 можно выбрать от 0 до 3 пунктов.
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38829678
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
scfНасчет IOT - я так думаю, что данные все-таки дублируются, т.е. хранятся и в индексе, и в таблице. Иначе full scan таблицы потребует чтения из двух разных мест.
IOT строиться не по таблице, а вместо неё
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38829683
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вася Уткин,

а, я думал, что в IOT поля переносятся выборочно.
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38829685
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfдело-то в том, что читать "значение" мне нафиг не нужно) Мне бы только rowid
узнать, чтобы мирно прочитать мой блоб из тейблспейса.
А, так вот что тебе нужно... Радуйся, оно существует! Причём во множестве вариантов.
Например, "NTFS" и "ext2". Всё как ты описываешь: индекс в котором хранятся исключительно
rowid по которым и достаётся BLOB.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38829687
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Прежде чем делать такие заявления, желательно понимать отличие требований для ФС к требованиям для СУБД. Вы должны это знать, так что ваш комментарий меня удивляет.
Банальнейший пример - в таблице может быть больше одно ключа (не путать с первичным ключом)
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38829688
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
scfВася Уткин,

а, я думал, что в IOT поля переносятся выборочно.
Это называется Create Indexes with Included Columns и есть только в MS SQL
В Oracle того же эффекта можно достичь построив Materialized View.
Да собственно и в MS SQL тоже можно построив Indexed View (Но только в MS SQL Enterprise-версии оптимизатор запросов будет автоматически использовать indexed view в запросах в которых он не указан, но с его помощью их можно ускорить. А Indexes with Included Column будет использовать автоматически в любой версии).
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38829692
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, ну я совершенно вас не понимаю :-)
Посты, достойные школьника, перемежаются неожиданно глубокими знаниями по мелким деталям.

Это типа такой троллинг или я правда так хреново излагаю мысли? :-)
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38829696
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче)

Есть таблица из 4 полей:
X VARCHAR2
Y VARCHAR2
Z VARCHAR2
blob BLOB

Мы заранее знаем, что селектить по ней будем только блоб, а во WHERE могут упоминаться поля X, Y и Z. Как будет выглядеть наиболее эффективная реализация?
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38829701
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfили я правда так хреново излагаю мысли? :-)
Ага, хреново. Ты сказал "хочу по значению достать содержимое блоба". По-моему это
абсолютно конкретное требование. А потом "вдруг" всплывает "несколько ключей". Ну так
опять же радуйся: и в NTFS и в ext2 существуют штуки, обычно именуемые "links". На один и
тот же блоб могут указывать несколько ключей.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38829704
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfКак будет выглядеть наиболее эффективная реализация?
В зависимости от поисковых запросов или файлы в каталогах трёх уровней вложенности (для
AND) или три каталога с линками (для OR).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38829707
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Давайте все-таки без клоунады...
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38829732
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfДавайте все-таки без клоунады...
Я серьёзен как дохлый лев. Какому из твоих требований файловая система не удовлетворяет?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38829785
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

- ACID
- администрирование
- быстродействие
- поддержка разных типов ключей
- поддержка сложных запросов (да хоть X=1 and Z=5)
- поддержка джойнов

Если все плюшки полноценный СУБД не нужны - то есть 1001 nosql СУБД, работающих быстрее.
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38829835
bengunn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
scfКак будет выглядеть наиболее эффективная реализация?

Эффективная с какой точки зрения? с т.з. производительности? или с т.з. хранения данных?
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38829888
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38830034
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scf- ACID
Что не так с ACID? Создание линка и переименование файла атомарны, сами по себе линки
консистентны, durability тоже на месте.

scf- администрирование
Что не так с администрированием? Бэкап-рестор проблем не вызывают.

scf- быстродействие
Превосходит все известные СУБД кроме in-memory.

scf- поддержка разных типов ключей
Строковых ключей недостаточно? Для чего?

scf- поддержка сложных запросов (да хоть X=1 and Z=5)
Зачем они в системе хранения блобов?

scf- поддержка джойнов
Зачем они в системе хранения блобов? Твои гипотетические "индексы без данных" их тоже не
поддерживают, кстати.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38830076
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
scfКороче)

Есть таблица из 4 полей:
X VARCHAR2
Y VARCHAR2
Z VARCHAR2
blob BLOB

Мы заранее знаем, что селектить по ней будем только блоб, а во WHERE могут упоминаться поля X, Y и Z. Как будет выглядеть наиболее эффективная реализация?
Не, с вас уже и так бутылка
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38830132
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вася УткинЭто называется Create Indexes with Included Columns и есть только в MS SQL Не только, есть еще и в DB2. И есть подозрение, что в ней они появились раньше ;)
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38830143
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FavnВася УткинЭто называется Create Indexes with Included Columns и есть только в MS SQL Не только, есть еще и в DB2. И есть подозрение, что в ней они появились раньше ;)
Ок, с автора вторую бутылку вам
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38830209
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfКороче) Есть таблица из 4 полей: X VARCHAR2 Y VARCHAR2 Z VARCHAR2 blob BLOB Мы заранее знаем, что селектить по ней будем только блоб, а во WHERE могут упоминаться поля X, Y и Z. Как будет выглядеть наиболее эффективная реализация?В СУБД Caché, например, так:Class test.demo Extends %Persistent [Final] { Index idxX On X; Index idxY On Y [ Type = bitmap ]; Index idxZ On Z [ Type = bitmap ]; Property X As %String [ Calculated, Private, SqlComputeCode = {set {*}="X"_{%%ID}}, SqlComputed ]; Property Y As %String [ Calculated, Private, SqlComputeCode = {set {*}="Y"_{%%ID}_{X}}, SqlComputed ]; Property Z As %Integer [ Calculated, Private, SqlComputeCode = {set {*}=$length({blob})}, SqlComputed ]; Property blob As %Stream.GlobalBinary; ClassMethod Fill() {   &sql(truncate table test.demo)   &sql(insert into test.demo default values)   &sql(insert into test.demo(blob) values('qwer'))   &sql(insert into test.demo(blob) values('12a'))   &sql(insert into test.demo(blob) values('ZZZZXXXX'))   zwrite ^test.demoD,^test.demoI } }
  • select * from test.demoIDblob1(null)2qwer312a4ZZZZXXXX
  • select *,X,Y from test.demoIDblobXY1(null)X1Y1X12qwerX2Y2X2312aX3Y3X34ZZZZXXXXX4Y4X4
  • select *,X,Y from test.demo where Z>3IDblobXY2qwerX2Y2X24ZZZZXXXXX4Y4X4
  • select * from test.demo where Z>1 and x in ('x3','x4')IDblob312a4ZZZZXXXX
  • В данном примере значения вычисляемых полей X,Y,Z будут храниться только в индексах, но не в данных.
  • Они по-умолчанию не видны через SQL (select *), но тем не менее их (если о них, конечно, знать) можно использовать как в WHERE, так и в SELECT. В SELECT их использовать не сто́ит, так как в этом случае значение будет повторно вычислено, а не взято уже готовое из индекса. По ним можно строить разного типа индексы, включая bitmap, и строить сложные запросы, включая и JOIN. Dimitry Sibiryakovscf- поддержка сложных запросов (да хоть X=1 and Z=5) Зачем они в системе хранения блобов?ТС хранит не просто блобы, а ещё некоторую доп. информацию, полученную из них. Например, в X может храниться общее кол-во распознанных людей на фотографии, в Y - кол-во женщин, в Y - кол-во улыбающихся людей и т.д. Такого рода инфу ради экономии места и скорости выполнения запросов лучше хранить только в индексах и не вычислять каждый раз.
    ...
    Рейтинг: 0 / 0
    В каких СУБД есть такая штука...
        #38831148
    Ivan Durak
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    servitТакого рода инфу ради экономии места и скорости выполнения запросов лучше хранить только в индексах и не вычислять каждый раз.
    а как индексы перестраиваться будут? нормально?
    и да, апдейт этих полей возможен?
    ...
    Рейтинг: 0 / 0
    В каких СУБД есть такая штука...
        #38831249
    servit
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    Ivan Durakа как индексы перестраиваться будут? нормально?
    Да, без проблемClass demo.test Extends %Persistent
    {

    Index idxX On X;

    Index idxY On Y;

    Property X As %Integer [ InitialExpression = 12 ];

    Property Y As %Integer [ Calculated, SqlComputeCode = {set {*}={X}+1}, SqlComputed, SqlComputeOnChange = X ];

    ClassMethod Fill()
    {
      &sql(truncate table demo.test)
      &sql(insert into demo.test default values)
      &sql(insert into demo.test(X) select 89 union select 34)

      zwrite ^demo.testD,^demo.testI

      write !
      &sql(update demo.test set X=55 where %ID=2)

      zwrite ^demo.testD,^demo.testI
    }

    }

    Результат:

    Код: plaintext
    1.
    2.
    3.
    4.
    5.
    6.
    7.
    8.
    9.
    10.
    11.
    12.
    13.
    14.
    15.
    16.
    17.
    18.
    19.
    20.
    21.
    USER>d ##class(demo.test).Fill()
    ^demo.testD=3
    ^demo.testD(1)=$lb("",12)
    ^demo.testD(2)=$lb("",89)
    ^demo.testD(3)=$lb("",34)
    ^demo.testI("idxX",12,1)=""
    ^demo.testI("idxX",34,3)=""
    ^demo.testI("idxX",89,2)=""
    ^demo.testI("idxY",13,1)=""
    ^demo.testI("idxY",35,3)=""
    ^demo.testI("idxY",90,2)=""
     
    ^demo.testD=3
    ^demo.testD(1)=$lb("",12)
    ^demo.testD(2)=$lb("",55)
    ^demo.testD(3)=$lb("",34)
    ^demo.testI("idxX",12,1)=""
    ^demo.testI("idxX",34,3)=""
    ^demo.testI("idxX",55,2)=""
    ^demo.testI("idxY",13,1)=""
    ^demo.testI("idxY",35,3)=""
    ^demo.testI("idxY",56,2)=""

    select * from demo.test

    IDXY112132555633435
    Ivan Durakи да, апдейт этих полей возможен?Нет, они же вычисляемые (хотя возможны варианты ).
    Но апдейт можно сделать полям, от которых они зависят, тогда и эти поменяют свои значения (перевычислятся).
    ...
    Рейтинг: 0 / 0
    В каких СУБД есть такая штука...
        #38836470
    Фотография a_voronin
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    ...
    Рейтинг: 0 / 0
    23 сообщений из 73, страница 3 из 3
    Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / В каких СУБД есть такая штука...
    Найденые пользователи ...
    Разблокировать пользователей ...
    Читали форум (0):
    Пользователи онлайн (0):
    x
    x
    Закрыть


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