powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
25 сообщений из 26, страница 1 из 2
ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
    #38388437
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hi all

Утверждается, что блобы в ФБ могут быть аж до 32 Гб: http://www.firebirdsql.org/en/firebird-technical-specifications/ Data Type Specifics
Name Size Range/Precision DescriptionBLOB < 32GB -- Stores data of variable indeterminate size
Решил проверить и что-то не сильно бросились в глаза эти самые 32 Гб:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
Use CONNECT or CREATE DATABASE to specify a database
SQL> create database 'hugeblob.fdb'; commit;
SQL> create table t(id int primary key, b blob); commit;

SQL> select count(*) from rdb$fields;

                COUNT
=====================
                  139

SQL> select power(139,4)*36 from rdb$database;

               MULTIPLY
=======================
      13438837476.00000 -- т.е. list(uuid_to_char(gen_uuid()),'') должен вернуть строку длиной около 13.4 Гб знаков

SQL> set stat on;
-- заливаем в блоб строки типа такой:
-- 09716A5A-C5A6-4A49-B0D2-F5B61F50D89D557236AF-23A8-4A45-A8B0-748EC854A66C
SQL> insert into t select 1,list(uuid_to_char(gen_uuid()),'') from rdb$fields,rdb$fields,rdb$fields,rdb$fields;
Statement failed, SQLSTATE = 54000
Implementation limit exceeded
-Maximum BLOB size exceeded
Current memory = 312596224
Delta memory = 5929216
Max memory = 312596552
Elapsed time= 752.86 sec
Cpu = 0.02 sec
Buffers = 65000
Reads = 0
Writes = 972605
Fetches = 233377800

Trace:

Код: plaintext
1.
2.
3.
2013-09-05T19:58:01.7220 (2667:0x7f83f08f3d00) ERROR AT JStatement::execute
        /var/db/fb30/hugeblob.fdb (ATT_3, SYSDBA:NONE, NONE, <internal>)
335544381 : Implementation limit exceeded
335544857 : Maximum BLOB size exceeded


Файл базы в момент вывала ошибки имеет размер около 4 Гб:
Код: plaintext
4245946368 Sep  5 20:05 hugeblob.fdb

Это что-то поломалось или просто никто не нагружал еще пресловутые 32 Гб на блоб ?

PS.
Код: plaintext
1.
2.
3.
4.
5.
SQL> show version;
ISQL Version: LI-T3.0.0.30628 Firebird 3.0 Alpha 1
Server version:
Firebird/Linux/AMD/Intel/x64 (access method), version "LI-T3.0.0.30628 Firebird 3.0 Alpha 1"
on disk structure version 12.0
...
Рейтинг: 0 / 0
ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
    #38388440
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидУтверждается, что блобы в ФБ могут быть аж до 32 Гб
Это зря. 64к сегментов по 64к это всего 4г.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
    #38388462
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
лимит либо 2 либо 4 гига (не помню точно)
...
Рейтинг: 0 / 0
ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
    #38388488
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrлимит либо 2 либо 4 гига (не помню точно)чё-то не пропёрло, даже с 2 гигами
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
[root@vmoel63 21:38:34 fb30]$ isql hugeblob.fdb
Database:  hugeblob.fdb
SQL> recreate table t(id int, b blob); commit;
set stat on;
insert into t(id,b) select 1,list(uuid_to_char(gen_uuid()),'') from rdb$fields,rdb$fields,rdb$fields,rdb$fields rows (2147000000/36);
commit;
set stat off;
SQL> SQL>
Statement failed, SQLSTATE = 54000
Implementation limit exceeded
-Maximum BLOB size exceeded
Current memory = 318030344
Delta memory = 11555840
Max memory = 318030840
Elapsed time= 669.76 sec
Cpu = 0.02 sec
Buffers = 65000
Reads = 42
Writes = 970394
Fetches = 233376230
...
Рейтинг: 0 / 0
ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
    #38388496
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидчё-то не пропёрло, даже с 2 гигамиБез патча Влада, который делает
результат LIST() потоковым, каждая часть списка занимает отдельный сегмент. Так что LIST()
(а точнее его входной поток) ограничен 64к значениями (32к если разделитель не пуст).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
    #38388501
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovТаблоидчё-то не пропёрло, даже с 2 гигамиБез патча Влада, который делает
результат LIST() потоковым, каждая часть списка занимает отдельный сегмент. Так что LIST()
(а точнее его входной поток) ограничен 64к значениями (32к если разделитель не пуст).
Погодь! тут еще что-то непонятное.
Вот так, с DT, - пропёрло:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
insert into t(id,b) select 1,list(uuid_to_char(gen_uuid()),'')
 from ( 
  select 1 r
  from rdb$fields,rdb$fields,rdb$fields,rdb$fields
  rows 55555555
 ) 
;
commit;

SQL> select char_length(b) from t;

 CHAR_LENGTH
============
  1999999980

Это как объяснить ?
...
Рейтинг: 0 / 0
ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
    #38388510
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"я офигеваю, дорогая редакция!" (С)
Это что получается, LIST() вычисляется _до_ фильтра rows ??

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SQL> recreate table t(id int, b blob); commit;
set stat on;
insert into t(id,b) select 1,list(uuid_to_char(gen_uuid()),'')
from rdb$fields,rdb$fields,rdb$fields,rdb$fields
rows 55555555;
commit;
set stat off;
SQL> SQL> CON> CON>
Statement failed, SQLSTATE = 54000
Implementation limit exceeded
-Maximum BLOB size exceeded
Current memory = 321268504
Delta memory = 1023816
Max memory = 322121448
Elapsed time= 681.83 sec
Cpu = 0.00 sec
Buffers = 65000
Reads = 29
Writes = 970748
Fetches = 233405440
...
Рейтинг: 0 / 0
ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
    #38388522
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

а если подумать

Код: sql
1.
2.
3.
select count(*)
from t
rows 1



list такая же агрегатная функция как и все остальные. Не пойму что так удивило.
...
Рейтинг: 0 / 0
ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
    #38388537
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид> Это что получается, LIST() вычисляется _до_ фильтра rows ?

Нет, конечно (топик не читал). При чём не только List.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
    #38388538
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис> list такая же агрегатная функция как и все остальные. Не пойму что так удивило.

То ли я слона не замечаю, то ли одно из двух.
Ни List, ни агрегатные функции, ни вообще
какие-то функции не вычисляются до Rows.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
    #38388547
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovБез патча Влада, который делает
результат LIST() потоковым, каждая часть списка занимает отдельный сегмент. Так что LIST()
(а точнее его входной поток) ограничен 64к значениями (32к если разделитель не пуст).Что-то я не припоминаню ни счётчика сегментов, ни ограничения на их кол-во.
Размер блоба во внутренней стр-ре живёт в 32-битной переменной, ОДС позволяет иметь и бОльшие блобы.
Знать бы - зачем...
...
Рейтинг: 0 / 0
ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
    #38388549
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad> Знать бы - зачем...

+ 100500

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
    #38388553
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladОДС позволяет иметь и бОльшие блобы.
Код: sql
1.
	ULONG blh_length;			// Total length of data


Или это длина данных на одной странице?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
    #38388562
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

я имел в виду способ хранения блобов.
Посчитай сам на досуге, сколько страниц может хранить блоб 2-го уровня.
...
Рейтинг: 0 / 0
ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
    #38388565
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот опыты с большими блобами ещё одного энтузиаста, широко известного в узких кругах :)
...
Рейтинг: 0 / 0
ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
    #38388576
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисНе пойму что так удивило.Да переклинило мну. Было же недавно, но не отложилось что-то :-/
Видимо, оракловая гимнастика до сих пор на головном суставе отражается: там НЕЛЬЗЯ ограничить выхлоп агрегатного запроса без derived table.

DDL:
ora
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
HR@xe 01:11:52>set timing off
HR@xe 01:11:52>set echo off
HR@xe 01:11:52>set feed off
HR@xe 01:12:01>create table tg(x number, y number);
HR@xe 01:12:52>insert into tg select mod(level, 20),level from dual connect by level<65000;
HR@xe 01:13:32>commit;
HR@xe 01:13:34>select x,count(Y) from tg group by x;

         X   COUNT(Y)
---------- ----------
         1       3250
         6       3250
        11       3250
        13       3250
         2       3250
        14       3250
         4       3250
         5       3250
        17       3250
         8       3250
        18       3250
         3       3250
         7       3250
        19       3250
         0       3249
         9       3250
        10       3250
        12       3250
        15       3250
        16       3250
То есть, вот такой syntax-бред там не прокатит, ес-сно:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
HR@xe 01:13:48>select x,count(Y) from tg group by x where rownum<10;
select x,count(Y) from tg group by x where rownum<10
                                     *
ERROR at line 1:
ORA-00933: SQL command not properly ended


Elapsed: 00:00:00.00
HR@xe 01:14:03>select x,count(Y) from tg group by x having rownum<10;
select x,count(Y) from tg group by x having rownum<10
                                            *
ERROR at line 1:
ORA-00979: not a GROUP BY expression


А вот такое:
Код: plaintext
HR@xe 01:17:34>select x,count(Y) from tg where rownum<10 group by x;
- выдаст неверный результат:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
         X   COUNT(Y)
---------- ----------
         1          1
         2          1
         4          1
         5          1
        17          1
        18          1
         3          1
        19          1
         0          1

в FB всё по-другому: наличие ограничителя числа возвращаемых строк не меняет результата агрегатов, да и сам ограничитель не требует делать из выборки DT.
Отсюда и тараканы у мну в голове.

ЗЫ. Кстати, в m$ sql ограничение выборки также не влияет на результат агрегирования, только там надо вводить "select top N x,count(y) from ... " вместо нашего select x,count(y) from ... group by x rows N)
...
Рейтинг: 0 / 0
ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
    #38388582
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladРазмер блоба во внутренней стр-ре живёт в 32 -битной переменной, ОДС позволяет иметь и бОльшие блобы. Н-ды ? хм!..

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
$ isql localhost/3330:hugeblob -n
Database:  localhost/3330:hugeblob
SQL> recreate table t(id int, b blob); commit;
set stat on;
insert into t(id,b) select 1,list(uuid_to_char(gen_uuid()),'')
from  ( 
  select 1 r
  from rdb$fields,rdb$fields,rdb$fields,rdb$fields
  rows 119304600 -- power(2,32)/36 =  119'304'647
 ) 
;
commit;
set stat off;
SQL> SQL> CON> CON> CON> CON> CON> CON> CON>
Statement failed, SQLSTATE = 54000
Implementation limit exceeded
-Maximum BLOB size exceeded
Current memory = 318027944
Delta memory = 11545504
Max memory = 318027944
Elapsed time= 682.77 sec
Cpu = 0.00 sec
Buffers = 65000
Reads = 40
Writes = 970462
Fetches = 233376270

hvladЗнать бы - зачем...Люблю большие числа. В "фильмах" с их участием много чего интересного можно увидеть.
...
Рейтинг: 0 / 0
ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
    #38388584
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladВот опыты с большими блобами ещё одного энтузиаста, широко известного в узких кругах :)Хорошо пишет, читается легко :-)
...
Рейтинг: 0 / 0
ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
    #38388693
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидЛюблю большие числа. В "фильмах" с их участием много чего интересного можно увидеть.Вот, пожалуйста, и примерчик готов: затолкал я в блоб этот строку длиной под 2 Гб.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
recreate table t(id int, b blob); commit;
set stat on;
insert into t(id,b) select 1,list(uuid_to_char(gen_uuid()),'')
from (
  select 1 r
  from rdb$fields,rdb$fields,rdb$fields,rdb$fields
  rows 59652300 
)
;
commit;
set stat off;
Дальше запросил последние 12 знаков (set blob all; select right(b, 12) from t; - отработало быстро, кстати). В моём случае запрос вернул "D6912854CBA2".

Теперь два варианта:
1. запрос с LIKE, выполнится достаточно быстро:
select count(*) from t where b like '%D6912854CBA2%' ==> 14"
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Statement 28:
----------------------------------------------------
select count(*) from t where b like '%D6912854CBA2%'
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PLAN (T NATURAL)
1 records fetched
  14579 ms, 557776 read(s), 1114457 fetch(es)

Table                             Natural     Index
****************************************************
T                                       1
2. Запрос с similar to:
Код: plaintext
select count(*) from t where b similar to '%D6912854CBA2%';
- тихая мучительная смерть:
2.1) никакого ответа в течение 15 минут
2.2) хрен срубишь isql по Ctrl-Break (кстати, подключался к линуху с виндовой машины, т.е. по ТСР) - пришлось "крестиком" закрывать.
2.3) в трейсе никакого отклика на событие закрытия нет, процесс ФБ полностью грузит одно из ядер ЦПУ
2.4) самое интересное: невозможно ничего запросить у mon$-таблиц по этой базе! Переконнект и запрос select count(*) from mon$attachments - висит без ответа. В трейсе отразился только старт этого запроса:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
2013-09-06T09:16:46.0820 (3228:0x7f86d54b73f8) EXECUTE_STATEMENT_START
        hugeblob (ATT_282, SYSDBA:NONE, NONE, TCPv4:192.168.43.96)
        C:\MIX\firebird\fb25\bin\isql.exe:1868
                (TRA_548, CONCURRENCY | WAIT | READ_WRITE)

Statement 45:
-------------------------------------------------------------------------------
select count(*) from mon$attachments
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PLAN (MON$ATTACHMENTS NATURAL)
И я знаю, кажись, до какого момента он будет висеть: пока similar to не закончит свою работу.

PS. FB-3, из снапшота от 05.09.2013
...
Рейтинг: 0 / 0
ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
    #38388816
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамСимонов Денис> list такая же агрегатная функция как и все остальные. Не пойму что так удивило.

То ли я слона не замечаю, то ли одно из двух.
Ни List, ни агрегатные функции, ни вообще
какие-то функции не вычисляются до Rows.



Ну вообще-то, по идее всё что в секции select до from должно вычисляться по мере фетча в том числе подзапросы, udf, PSQL функции, кроме агрегатных функций. Ну при буферизации конечно придётся вычислить всё (если сортировка не по индексу). Ну может ещё есть какие исключения.
...
Рейтинг: 0 / 0
ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
    #38388936
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидИ я знаю, кажись, до какого момента он будет висеть: пока similar to не закончит свою работу.... ну да, так и есть: уже три часа всё в ступоре. То есть, запрос select count(*) from mon$attachments от коннекта_1 -- так и висит, ждёт результатов similar_to, которые еще не получены коннектом_2.
Самое забавное, что коннекта, который запустил similar_to, давно уже нет, я прибил его. А "дело его живёт".
top
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
top - 12:25:21 up 20:00,  4 users,  load average: 1.00, 1.03, 1.07
Tasks: 135 total,   1 running, 134 sleeping,   0 stopped,   0 zombie
Cpu0  :  0.0%us,  0.3%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu1  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu2  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu3  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu4  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu5  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
 Cpu6  : 66.3%us, 33.7%sy ,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu7  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  16467480k total, 16063764k used,   403716k free,   147416k buffers
Swap: 16383996k total,      812k used, 16383184k free,  8483760k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 3228 firebird  20   0 6099m 4.8g 7924 S  100.1  30.5 248:12.18 firebird
 1575 firebird  20   0 27912  724  404 S  0.0  0.0   0:00.00 fbguard
2 dimitr: можно ли (хотя бы только в ФБ-3) вкрячить проверку движком необходимости реагировать на запросы к mon$-таблицам, когда какой-то коннект делает similar to ? Ну и еще лучше, что бы этот коннект-similar'щик также реагировал на delete from mon$.
А то безответному тикету-3858 уже больше года, Адриано что-то там обещал улучшить в ФБ-3 по similar'ам, да только воз и ныне там :-/
...
Рейтинг: 0 / 0
ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
    #38389073
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис> всё что в секции select до from должно вычисляться по
Симонов Денис> мере фетча в том числе подзапросы, udf, PSQL функции

Не совсем так, но в целом верно.

Симонов Денис> кроме агрегатных функций

Ошибаешься.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
    #38389360
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

ну в принципе ты прав. Я не всегда умею правильно объяснить что хочу сказать.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
SQL> select count(*) from horse rows 1;

Select Expression
    -> First N Records
        -> Aggregate
            -> Table "HORSE" Full Scan
SQL> select (select 1 from rdb$database) as a from horse rows 10;

Select Expression
    -> Singularity Check
        -> Table "RDB$DATABASE" Full Scan
Select Expression
    -> First N Records
        -> Table "HORSE" Full Scan
SQL> select (select name from color where color.code_color = horse.code_color) as a from horse rows 10;

Select Expression
    -> Singularity Check
        -> Filter
            -> Table "COLOR" Access By ID
                -> Bitmap
                    -> Index "PK_COLOR" Scan
Select Expression
    -> First N Records
        -> Table "HORSE" Full Scan
SQL>

Кстати dimitr а будет ли в новой форме плана как нибудь отображено, что подзапрос
Код: sql
1.
select name from color where color.code_color = horse.code_color 

выполняется для каждой строки основного запроса? Т.е. между ними.
...
Рейтинг: 0 / 0
ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
    #38389490
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисКстати dimitr а будет ли в новой форме плана как нибудь отображено
не планировал этого, может когда-либо позже
...
Рейтинг: 0 / 0
ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
    #38389925
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидАдриано что-то там обещал улучшить в ФБ-3 по similar'ам, да только воз и ныне там :-/Только что проверил в 3.0 - всё как и прежде, в 2.5. Ничего не улучшено, тикет CORE-3919 закрыт преждевременно.
Запрос
Код: sql
1.
select count(*) from tb where b similar to '%aaa#aaa%'; 

- на таблице из 1 строки, блоб в которой содержит в себе 1 млн символов и имеет вид:
Код: sql
1.
aaaaaaaaaaaaaaa#aaaaaaaaaaaaaaa#aaaaaaaaaaaaaaa#...

- обрабатывается почти 2 минуты. Замена на LIKE - 0.05 сек, т.е. на грани погрешности измерения.
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / ФБ-3.0. Какова максимально возможная длина блоба, который можно затолкать в запись ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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