powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / поскажите с create table(space), чтобы page size был 32к (+ heap size)
9 сообщений из 9, страница 1 из 1
поскажите с create table(space), чтобы page size был 32к (+ heap size)
    #36272012
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
db2 express-c

у меня не получается разобраться в документации...

как мне написать create table, чтобы размер страницы был побольше того, который по умолчанию? нужно ли указывать один table space для трех таблиц, или нужно создавать для каждой? как быть с тем, что там написано, что для индексов и блобов - отдельный tablespace?

таблички типа таких:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
create table rel(
   upk char ( 32 ) for bit data not null,
   dnk char ( 32 ) for bit data not null,
   primary key (dnk, upk)
);
create index dnk_upk on rel (dnk, upk);


create table str(
   kee char ( 32 ) for bit data not null,
   val char ( 15 ),
   bin blob,
   primary key (val, kee)
);
create index str_kee on str (kee);

как я понял, для них неявно создается тейбл спейс по умолчанию; а я должен создать явно, а в своих creates прописать, что таблица будет там; но меня сбивают с толку индексы и блобы, куда они попадут...

напишите, пожалуйста, как правильно?


вопрос №2: советчик в процессе работы (интенсивыне селекты и инсерты) подсказывает, что мне надо увеличить размер "кучи" (heap) и реорганизовать индексы. индексы реогранизовались прямо из советчика, а вот размер кучи я не понял, как увеличить, не смог найти в Центре управления нужную форму.
...
Рейтинг: 0 / 0
поскажите с create table(space), чтобы page size был 32к (+ heap size)
    #36272178
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fedd,

1.
Таблицы лежат в табличных пространствах.
Размер страницы - это атрибут табличных пространств.
Табличные пр-ва состоят из контейнеров (файлов, raw устройств или каталогов) бывают двух типов DMS (файлы и raw) и SMS (каталоги).
Если пр-во - DMS, то вы можете создать таблицу так, чтоб данные лежали в одном, индексы в другом, lob - в третьем, или, например, данные и индексы в одном, а lob - в другом и т.д.
CREATE TABLE ... IN TABLESPACE1 INDEX IN TABLESPACE2 LONG IN TABLESPACE3 ...
Если пр-во SMS, то всё должно быть в одном пр-ве (исключая range partitioned таблицы, которых у вас всё равно нет).
Таблицы, исходя из этого, вы можете размещать по пространствам как вам захочется.
При создании пр-ва надо также иметь ввиду, что для него должен быть определён bufferpool с таким же размером страницы.
См. CREATE TABLESPACE .

2.
Куч там несколько (из командной строки на сервере):
db2 get db cfg for your_db_name | grep -i heap
вам про какую говорят?
...
Рейтинг: 0 / 0
поскажите с create table(space), чтобы page size был 32к (+ heap size)
    #36272322
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо! Mark BarinsteinТаблицы, исходя из этого, вы можете размещать по пространствам как вам захочется.то есть можно несколько таблиц (данных) в одном пространстве? будет ли это иметь смысл в плане производительности?Mark BarinsteinПри создании пр-ва надо также иметь ввиду, что для него должен быть определён bufferpool с таким же размером страницы.
См. CREATE TABLESPACE .то есть у меня должно быть примерно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
create bufferpool rel_bp
  size  1 
  pagesize 32K;

create tablespace rel_data
  managed by database
  bufferpool rel_bp
  pagesize 32K;

create tablespace rel_index
  managed by database
  pagesize 4K;

create table rel(
   upk char ( 32 ) for bit data not null,
   dnk char ( 32 ) for bit data not null,
   primary key (dnk, upk)
) in rel_data index in rel_index;
create index dnk_upk on rel (dnk, upk);

ох, сдается мне, ничего у меня сразу не заработает :(Mark Barinstein2.
Куч там несколько (из командной строки на сервере):
db2 get db cfg for your_db_name | grep -i heap
вам про какую говорят?это у меня все дома, на память не помню. полагаю, по аналогии с другими серверами, кэш страниц в памяти, куда данные поднимаются из базы для более быстрой работы
...
Рейтинг: 0 / 0
поскажите с create table(space), чтобы page size был 32к (+ heap size)
    #36272616
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если я правильно предположил синтаксис, то можно я сделаю одно табличное пространство DMS с размером страницы 32к, куда и положу все таблицы, у которых должен быть такой размер страницы? не проиграю ли я где-нибудь?

и еще терзают смутные сомнения насчет непривычных упоминаний о максимальном количестве страниц в таблице/пространстве. не упрусь ли я в них в один прекрасный момент - либо по умолчанию у меня получится нормальное таблицное пространство без ограничений?
...
Рейтинг: 0 / 0
поскажите с create table(space), чтобы page size был 32к (+ heap size)
    #36272645
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
feddто есть можно несколько таблиц (данных) в одном пространстве? будет ли это иметь смысл в плане производительности?Зависит от разных причин.feddох, сдается мне, ничего у меня сразу не заработаетЕсли будете создавать такие маленькие буфера, то да, есть большая вероятность :)
Кроме того:
1.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
create tablespace your_tablespace
managed by database using 
      .-,---------------------------------------------------.      
      V                                                     |      
|--(----+-FILE---+--'container-string'--+-number-of-pages-+-+--)--|
        '-DEVICE-'                      '-integer--+-K-+--'        
                                                   +-M-+           
                                                   '-G-'      
или
Код: plaintext
create tablespace your_tablespace managed by automatic storage
если вы базу создали с поддержкой automatic storage (оно так по умолчанию).
2. Индекс по полям primary key создаётся автоматически. Не пытайтесь по этому же самому набору полей создать другой индекс.

feddэто у меня все дома, на память не помню. полагаю, по аналогии с другими серверами, кэш страниц в памяти, куда данные поднимаются из базы для более быстрой работыто, что я перечислил, это не буферные пулы.
...
Рейтинг: 0 / 0
поскажите с create table(space), чтобы page size был 32к (+ heap size)
    #36272761
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinstein2. Индекс по полям primary key создаётся автоматически. Не пытайтесь по этому же самому набору полей создать другой индекс.о майн готт! там должен быть индекс с другим порядком полей!.. :)Mark Barinsteinmanaged by automatic storageто есть вместо managed by database написать managed by automatic storage, а про размер страницы и название буферного пула я правильно написал.

ну а в определении буферного пула я напишу size automatic. (а то я сначала подумал, что это количество в страницах, и написал 1)

так?

спасибо! :)
...
Рейтинг: 0 / 0
поскажите с create table(space), чтобы page size был 32к (+ heap size)
    #36272766
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а, и, видимо, размер страницы в табличном пространстве можно не повторять, оно определится буферным пулом (?)
...
Рейтинг: 0 / 0
поскажите с create table(space), чтобы page size был 32к (+ heap size)
    #36273064
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
feddесли я правильно предположил синтаксис, то можно я сделаю одно табличное пространство DMS с размером страницы 32к, куда и положу все таблицы, у которых должен быть такой размер страницы? не проиграю ли я где-нибудь?OLTP не любит больших размеров страниц.feddи еще терзают смутные сомнения насчет непривычных упоминаний о максимальном количестве страниц в таблице/пространстве. не упрусь ли я в них в один прекрасный момент - либо по умолчанию у меня получится нормальное таблицное пространство без ограничений?Смотрите сами, такая вероятность есть:
SQL and XML limits .feddа, и, видимо, размер страницы в табличном пространстве можно не повторять, оно определится буферным пулом (?)Если вы не укажите pagesize, то, как сказано в писании, оно возьмётся из одноимённого параметра базы.
...
Рейтинг: 0 / 0
поскажите с create table(space), чтобы page size был 32к (+ heap size)
    #36273107
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinstein,

спасибо!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / поскажите с create table(space), чтобы page size был 32к (+ heap size)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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