powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / allocate extent ниже HWM
26 сообщений из 26, показаны все 2 страниц
allocate extent ниже HWM
    #39812723
х.з.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь выделить у таблицы extent ниже HWM:

Код: plsql
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.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
SQL> select banner from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
PL/SQL Release 12.1.0.2.0 - Production
CORE    12.1.0.2.0      Production
TNS for Solaris: Version 12.1.0.2.0 - Production
NLSRTL Version 12.1.0.2.0 - Production

SQL> select extent_management,allocation_type,segment_space_management from dba_tablespaces where tablespace_name='T_USR';

EXTENT_MAN ALLOCATIO SEGMEN
---------- --------- ------
LOCAL      SYSTEM    AUTO

SQL> create table t6 (x int) tablespace t_usr;

Table created.

SQL> insert into t6 select rownum from (select * from dual connect by 1=1) where rownum <= 10000;

10000 rows created.

SQL> exec dbms_stats.gather_table_stats(user,'T6', cascade=>true);

PL/SQL procedure successfully completed.

SQL> select num_rows, blocks, empty_blocks, avg_space, avg_row_len from user_tables where table_name = 'T6';

           NUM_ROWS              BLOCKS        EMPTY_BLOCKS           AVG_SPACE         AVG_ROW_LEN
------------------- ------------------- ------------------- ------------------- -------------------
              10000                  20                   0                   0                   4

SQL> ed
Wrote file afiedt.buf

  1  declare
  2    fs1_bytes number; fs2_bytes number; fs3_bytes number; fs4_bytes number;
  3    fs1_blocks number; fs2_blocks number; fs3_blocks number; fs4_blocks number;
  4    fullbytes number; fullblocks number; unformatted_bytes number; unformatted_blocks number;
  5  begin
  6    dbms_space.space_usage(
  7    'SYS',   --username
  8    'T6',  --segment name
  9    'TABLE', --segment type
10    unformatted_blocks, unformatted_bytes, fs1_blocks, fs1_bytes, fs2_blocks,
11    fs2_bytes, fs3_blocks, fs3_bytes, fs4_blocks, fs4_bytes, fullblocks, fullbytes);
12    dbms_output.put_line('FS1 Blocks = '||fs1_blocks||' and Bytes = '||fs1_bytes);
13    dbms_output.put_line('FS2 Blocks = '||fs2_blocks||' and Bytes = '||fs2_bytes);
14    dbms_output.put_line('FS3 Blocks = '||fs3_blocks||' and Bytes = '||fs3_bytes);
15    dbms_output.put_line('FS4 Blocks = '||fs4_blocks||' and Bytes = '||fs4_bytes);
16    dbms_output.put_line('Full Blocks = '||fullblocks||' and Bytes = '||fullbytes);
17    dbms_output.put_line('Unformatted Blocks = '||unformatted_blocks||' and Bytes = '||unformatted_bytes);
18* end;
SQL> /
FS1 Blocks = 0 and Bytes = 0
FS2 Blocks = 0 and Bytes = 0
FS3 Blocks = 0 and Bytes = 0
FS4 Blocks = 5 and Bytes = 40960
Full Blocks = 15 and Bytes = 122880
Unformatted Blocks = 0 and Bytes = 0

PL/SQL procedure successfully completed.

SQL> alter table t6 allocate extent;

Table altered.

SQL> exec dbms_stats.gather_table_stats(user,'T6', cascade=>true);

PL/SQL procedure successfully completed.

SQL> select num_rows, blocks, empty_blocks, avg_space, avg_row_len from user_tables where table_name = 'T6';

           NUM_ROWS              BLOCKS        EMPTY_BLOCKS           AVG_SPACE         AVG_ROW_LEN
------------------- ------------------- ------------------- ------------------- -------------------
              10000                  20                   0                   0                   4

SQL> ed
Wrote file afiedt.buf

  1  declare
  2    fs1_bytes number; fs2_bytes number; fs3_bytes number; fs4_bytes number;
  3    fs1_blocks number; fs2_blocks number; fs3_blocks number; fs4_blocks number;
  4    fullbytes number; fullblocks number; unformatted_bytes number; unformatted_blocks number;
  5  begin
  6    dbms_space.space_usage(
 7    'SYS',   --username
  8    'T6',  --segment name
  9    'TABLE', --segment type
10    unformatted_blocks, unformatted_bytes, fs1_blocks, fs1_bytes, fs2_blocks,
11    fs2_bytes, fs3_blocks, fs3_bytes, fs4_blocks, fs4_bytes, fullblocks, fullbytes);
12    dbms_output.put_line('FS1 Blocks = '||fs1_blocks||' and Bytes = '||fs1_bytes);
13    dbms_output.put_line('FS2 Blocks = '||fs2_blocks||' and Bytes = '||fs2_bytes);
14    dbms_output.put_line('FS3 Blocks = '||fs3_blocks||' and Bytes = '||fs3_bytes);
15    dbms_output.put_line('FS4 Blocks = '||fs4_blocks||' and Bytes = '||fs4_bytes);
16    dbms_output.put_line('Full Blocks = '||fullblocks||' and Bytes = '||fullbytes);
17    dbms_output.put_line('Unformatted Blocks = '||unformatted_blocks||' and Bytes = '||unformatted_bytes);
18* end;
SQL> /
FS1 Blocks = 0 and Bytes = 0
FS2 Blocks = 0 and Bytes = 0
FS3 Blocks = 0 and Bytes = 0
FS4 Blocks = 5 and Bytes = 40960
Full Blocks = 15 and Bytes = 122880
Unformatted Blocks = 0 and Bytes = 0

PL/SQL procedure successfully completed.

SQL> alter table t6 allocate extent(instance 1);

Table altered.

SQL> exec dbms_stats.gather_table_stats(user,'T6', cascade=>true);

PL/SQL procedure successfully completed.

SQL> select num_rows, blocks, empty_blocks, avg_space, avg_row_len from user_tables where table_name = 'T6';

           NUM_ROWS              BLOCKS        EMPTY_BLOCKS           AVG_SPACE         AVG_ROW_LEN
------------------- ------------------- ------------------- ------------------- -------------------
              10000                  20                   0                   0                   4

SQL> ed
Wrote file afiedt.buf

  1  declare
  2    fs1_bytes number; fs2_bytes number; fs3_bytes number; fs4_bytes number;
  3    fs1_blocks number; fs2_blocks number; fs3_blocks number; fs4_blocks number;
  4    fullbytes number; fullblocks number; unformatted_bytes number; unformatted_blocks number;
  5  begin
  6    dbms_space.space_usage(
  7    'SYS',   --username
  8    'T6',  --segment name
  9    'TABLE', --segment type
10    unformatted_blocks, unformatted_bytes, fs1_blocks, fs1_bytes, fs2_blocks,
11    fs2_bytes, fs3_blocks, fs3_bytes, fs4_blocks, fs4_bytes, fullblocks, fullbytes);
12    dbms_output.put_line('FS1 Blocks = '||fs1_blocks||' and Bytes = '||fs1_bytes);
13    dbms_output.put_line('FS2 Blocks = '||fs2_blocks||' and Bytes = '||fs2_bytes);
14    dbms_output.put_line('FS3 Blocks = '||fs3_blocks||' and Bytes = '||fs3_bytes);
15    dbms_output.put_line('FS4 Blocks = '||fs4_blocks||' and Bytes = '||fs4_bytes);
16    dbms_output.put_line('Full Blocks = '||fullblocks||' and Bytes = '||fullbytes);
17    dbms_output.put_line('Unformatted Blocks = '||unformatted_blocks||' and Bytes = '||unformatted_bytes);
18* end;
SQL> /
FS1 Blocks = 0 and Bytes = 0
FS2 Blocks = 0 and Bytes = 0
FS3 Blocks = 0 and Bytes = 0
FS4 Blocks = 5 and Bytes = 40960
Full Blocks = 15 and Bytes = 122880
Unformatted Blocks = 0 and Bytes = 0

PL/SQL procedure successfully completed.



результат говорит о том, что это невозможно. Или я что-то кардинально не понимаю?
...
Рейтинг: 0 / 0
allocate extent ниже HWM
    #39812729
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
х.з.,

простите, но как вы для себя понимаете HWM? Что это такое по-вашему?
и экстент вы выделяете не у таблицы, а для таблицы. кроме того, как можно выделить то, что уже выделено?

или я не понимаю вопроса. тогда уточните, что же именно вы пытаетесь сделать. словами, а не кодом... ;)
...
Рейтинг: 0 / 0
allocate extent ниже HWM
    #39812744
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
х.з.,
Код: plsql
1.
2.
3.
4.
5.
6.
ANALYZE table T6 compute statistics;
select num_rows, blocks, empty_blocks, avg_space, avg_row_len from user_tables where table_name = 'T6';

           NUM_ROWS              BLOCKS        EMPTY_BLOCKS           AVG_SPACE         AVG_ROW_LEN
   ------------------- ------------------- ------------------- ------------------- -------------------
              10000                  20                12                  2571                 7
...
Рейтинг: 0 / 0
allocate extent ниже HWM
    #39812746
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
х.з.выделить у таблицы extent ниже HWMЕсли опустить вопрос, кто на ком стоял, то insert append+rollback.
...
Рейтинг: 0 / 0
allocate extent ниже HWM
    #39812748
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
х.з.
Код: plsql
1.
  7    'SYS',   --username

Что-либо понимающие в обобщении пишут:
Код: plsql
1.
  7    user,


х.з.
Код: plsql
1.
from (select * from dual connect by 1=1) where rownum <= 10000

Смело до безумия.
х.з.
Код: plsql
1.
, cascade=>true

Нахрена?!

х.з.результат говорит о том, что это невозможно.Результат демонстрирует, что HWM и (de)allocate не связаны.
х.з.Или я что-то кардинально не понимаю?Структуру сегмента можно узнать гораздо проще.
А "тема" свидетельствует о неспособности донести какую-то мысль.
Ты испугался чего-то, чего нет.
...
Рейтинг: 0 / 0
allocate extent ниже HWM
    #39812766
х.з.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-х.з.выделить у таблицы extent ниже HWMЕсли опустить вопрос, кто на ком стоял, то insert append+rollback.
интернет полон древними постами, что ранее

alter table t6 allocate extent(instance 1);

выделял экстенты. А в 12.1 у меня не получилось.

авторСмело до безумия.
ну скопипастил, с кем не бывает. )

http://yong321.freeshell.org/oranotes/Dbms_Space.txt

авторРезультат демонстрирует, что HWM и (de)allocate не связаны.
в общем читал тырнет на предмет борьбы с hw contention и наткнулся на это:
https://orainternals.wordpress.com/2008/05/16/resolving-hw-enqueue-contention/

потестил у себя и с удивлением обнаружил что ТП с auto и autoallocate работает лучше всего в плане минимального числа ожиданий HW- enqueues
. Ну то есть всякие варианты типа uniform size 16M и freelists 8 работают хуже.

Потом наткнулся на:
авторAllocating additional extent with instance keyword seems to help in non-ASSM tablespace
решил потестить и обнаружил что в ASSM оно похоже не работает.
...
Рейтинг: 0 / 0
allocate extent ниже HWM
    #39812767
х.з.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viewerх.з.,
Код: plsql
1.
2.
3.
4.
5.
6.
ANALYZE table T6 compute statistics;
select num_rows, blocks, empty_blocks, avg_space, avg_row_len from user_tables where table_name = 'T6';

           NUM_ROWS              BLOCKS        EMPTY_BLOCKS           AVG_SPACE         AVG_ROW_LEN
   ------------------- ------------------- ------------------- ------------------- -------------------
              10000                  20                12                  2571                 7


ты хотел сказать что dbms_stats не наполняет AVG_SPACE и EMPTY_BLOCKS ? ну я это знаю. Только как и чем поможет выполненный тобой analyze?
...
Рейтинг: 0 / 0
allocate extent ниже HWM
    #39812769
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
х.з.ранее

alter table t6 allocate extent(instance 1);

выделял экстенты. А в 12.1 у меня не получилось.ElicСтруктуру сегмента можно узнать гораздо проще.

х.з.решил потестить и обнаружил что в ASSM оно похоже не работает.Ты уже-таки созрел, чтобы внятно сформулировать свой вопрос?
...
Рейтинг: 0 / 0
allocate extent ниже HWM
    #39812775
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
х.з.ты хотел сказать что dbms_stats не наполняет AVG_SPACE и EMPTY_BLOCKS ? ну я это знаю. Только как и чем поможет выполненный тобой analyze?
тем, что в отличие от приведённого тобой, видны разные результы до и после allocate extent...
...
Рейтинг: 0 / 0
allocate extent ниже HWM
    #39812783
х.з.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viewerтем, что в отличие от приведённого тобой, видны разные результы до и после allocate extent...
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
SQL> analyze table t6 compute statistics;

Table analyzed.

SQL> select num_rows, blocks, empty_blocks, avg_space, avg_row_len from user_tables where table_name = 'T6';

           NUM_ROWS              BLOCKS        EMPTY_BLOCKS           AVG_SPACE         AVG_ROW_LEN
------------------- ------------------- ------------------- ------------------- -------------------
              10000                  20                  20                2571                   7

SQL> alter table t6 allocate extent(instance 1);

Table altered.

SQL> analyze table t6 compute statistics;

Table analyzed.

SQL> select num_rows, blocks, empty_blocks, avg_space, avg_row_len from user_tables where table_name = 'T6';

           NUM_ROWS              BLOCKS        EMPTY_BLOCKS           AVG_SPACE         AVG_ROW_LEN
------------------- ------------------- ------------------- ------------------- -------------------
              10000                  20                  28                2571                   7


добавился экстент выше HWM. Если бы он добавился ниже HWM у меня бы AVG_SPACE и AVG_ROW_LEN были другие. И это бы я увидел без аналайза. не?
...
Рейтинг: 0 / 0
allocate extent ниже HWM
    #39812789
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
х.з.добавился ниже HWMСколько можно гнать эту пургу?
...
Рейтинг: 0 / 0
allocate extent ниже HWM
    #39812790
х.з.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-х.з.выделить у таблицы extent ниже HWMЕсли опустить вопрос, кто на ком стоял, то insert append+rollback.
Код: plsql
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.
SQL> select num_rows, blocks, empty_blocks, avg_space, avg_row_len from user_tables where table_name = 'T7';

           NUM_ROWS              BLOCKS        EMPTY_BLOCKS           AVG_SPACE         AVG_ROW_LEN
------------------- ------------------- ------------------- ------------------- -------------------
             290399                4797                1347                 870                 115

SQL> insert /*+APPEND*/into t7 select * from t7;

290399 rows created.

SQL> rollback;

Rollback complete.

SQL> exec dbms_stats.gather_table_stats(user,'T7');

PL/SQL procedure successfully completed.

SQL> analyze table t7 compute statistics;

Table analyzed.

SQL> select num_rows, blocks, empty_blocks, avg_space, avg_row_len from user_tables where table_name = 'T7';

           NUM_ROWS              BLOCKS        EMPTY_BLOCKS           AVG_SPACE         AVG_ROW_LEN
------------------- ------------------- ------------------- ------------------- -------------------
             290399                4797                4931                 870                 115


вроде HWM не сдвинулся?
...
Рейтинг: 0 / 0
allocate extent ниже HWM
    #39812806
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
х.з.,
1. alter table t6 allocate extent (size 1g);
2.смотреть не статистику , а dba_extents
3.HWM не сдвигается. ни один )
...
Рейтинг: 0 / 0
allocate extent ниже HWM
    #39812812
х.з.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторHWM не сдвигается. ни один )

а как тогда понять:
авторAll blocks are 100% full below the HWM, all of them are. we insert a new record. There is NO SPACE below the HWM, we need more blocks. So, we go to the extent and allocate another section of blocks (say 10 of them). We advance the HWM to include these 10 new blocks . The LHWM is now pointing where the OLD HWM was. The new HWM was advanced 10 blocks and between the LHWM and the HWM are 10 blocks - that HAVE NOT BEEN TOUCHED yet. They are "unsafe", not formatted. We take one of them and format it and put our new row on it

?
...
Рейтинг: 0 / 0
allocate extent ниже HWM
    #39812823
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дале по топику Тома переспрашивают, правильно ли они поняли приведённый ответ.
На что тот отвечает
https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:492636200346818072 it is called ASSM - automatic segment space management, it does what it wants to do.
Might all go below the high water mark? maybe, maybe not - it doesn't matte r,
... и в конечном итого советует не морочить себе голову... мир так устроен...
...
Рейтинг: 0 / 0
allocate extent ниже HWM
    #39812870
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
х.з.,
Это не утверждение, это предложение проверить
В ASSM с HWM все сложнее, там есть типа истинный HWM и так называемые Low HWM
Я не знаю гарантированного способа проверить их сдвиг, кроме дампа блока заголовка сегмента.
Поэтому план - выделить большой экстент, проверить что он реально выделен в dba_extents и посмотреть через дамп что случилось при этом с первым и вторым HWM
в помощь структура дампа
http://www.home2oracle.ru/block_internal/block_internal.html
...
Рейтинг: 0 / 0
allocate extent ниже HWM
    #39812877
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по логике должен сдвинуться истинный HWM, но блоки от Low HWM до него будут не размечены, поэтому не видны всякими тулсами
...
Рейтинг: 0 / 0
allocate extent ниже HWM
    #39813281
х.з.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DВАЯ не знаю гарантированного способа проверить их сдвиг, кроме дампа блока заголовка сегмента.

Код: plsql
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.
33.
34.
35.
36.
37.
38.
39.
SQL> create table dump tablespace t_usr as select * from dba_users;

Table created.

SQL> select header_file, header_block from dba_segments where segment_name = 'DUMP';

        HEADER_FILE        HEADER_BLOCK
------------------- -------------------
                476             3128578

SQL> alter system flush buffer_cache;

System altered.

SQL> alter system dump datafile 476 block 3128578;

System altered.

SQL> alter table dump allocate extent;

Table altered.

SQL> alter system flush buffer_cache;

System altered.

SQL> alter system dump datafile 476 block 3128578;

System altered.

SQL> alter table dump allocate extent(instance 1);

Table altered.

SQL> alter system flush buffer_cache;

System altered.

SQL> alter system dump datafile 476 block 3128578;



Вообще ничего не меняется. Только жирное растет на 1 и 128 соответсвенно.

авторExtent Control Header
-----------------------------------------------------------------
Extent Header:: spare1: 0 spare2: 0 #extents: 22 #blocks: 896
last map 0x00000000 #maps: 0 offset: 2716
Highwater:: 0x18f6db61 ext#: 21 blk#: 88 ext size: 128
#blocks in seg. hdr's freelists: 0
#blocks below: 856
mapblk 0x00000000 offset: 21
Unlocked
--------------------------------------------------------
Low HighWater Mark :
Highwater:: 0x18f6db61 ext#: 21 blk#: 88 ext size: 128
#blocks in seg. hdr's freelists: 0
#blocks below: 856
mapblk 0x00000000 offset: 21
Level 1 BMB for High HWM block: 0x18f6db0a
Level 1 BMB for Low HWM block: 0x18f6db0a
--------------------------------------------------------
Segment Type: 1 nl2: 1 blksz: 8192 fbsz: 0
L2 Array start offset: 0x00001434
First Level 3 BMB: 0x00000000
L2 Hint for inserts: 0x772fbd01
Last Level 1 BMB: 0x18f6db0a
Last Level II BMB: 0x772fbd01
Last Level III BMB: 0x00000000
Map Header:: next 0x00000000 #extents: 22 obj#: 30284943 flag: 0x10000000
Inc # 0
...
Рейтинг: 0 / 0
allocate extent ниже HWM
    #39813562
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с конструкцией size 1g не проглатывает?
...
Рейтинг: 0 / 0
allocate extent ниже HWM
    #39813801
х.з.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DВАс конструкцией size 1g не проглатывает?
блоки выделяются, но HWN не сдвигается.

В общем я наверное готов сформулировать вопрос ))

Как мне сдвинуть HWM вверх(добавить пустых блоков ниже hwm) в ASSM?
...
Рейтинг: 0 / 0
allocate extent ниже HWM
    #39813945
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
х.з.DВАс конструкцией size 1g не проглатывает?
блоки выделяются, но HWN не сдвигается.

В общем я наверное готов сформулировать вопрос ))

Как мне сдвинуть HWM вверх(добавить пустых блоков ниже hwm) в ASSM?


нафига?
вы же сами писали

х.з.потестил у себя и с удивлением обнаружил что ТП с auto и autoallocate работает лучше всего в плане минимального числа ожиданий HW- enqueues


Основная доля ожидания приходится на само выделение экстента и на конкурентное чтение блока заголовка, а не на формальный сдвиг HWM
Экстент выделился, в чем проблема?
...
Рейтинг: 0 / 0
allocate extent ниже HWM
    #39814347
х.з.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DВАнафига?
вы же сами писали

х.з.потестил у себя и с удивлением обнаружил что ТП с auto и autoallocate работает лучше всего в плане минимального числа ожиданий HW- enqueues


Основная доля ожидания приходится на само выделение экстента и на конкурентное чтение блока заголовка, а не на формальный сдвиг HWM
Экстент выделился, в чем проблема?
"лучше всего", но этого не достаточно.

в БД периодически наблюдается очень жесткое hw contention. Идея в том чтобы выделить перед этими операциями(insert) блоки в таблицу. Форматированные или нет - не важно. главное чтобы они уже были во время вставок во всех этих битмаповых картах обозначены.

я конечно могу в таблицу вставлять предварительно фейковые лямы записей, коммитить, удалять их, но хотелось бы более изящное решение.
...
Рейтинг: 0 / 0
allocate extent ниже HWM
    #39814379
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
х.з.в БД периодически наблюдается очень жесткое hw contention. Идея в том чтобы выделить перед этими операциями(insert) блоки в таблицу. Форматированные или нет - не важно. главное чтобы они уже были во время вставок во всех этих битмаповых картах обозначены.

я конечно могу в таблицу вставлять предварительно фейковые лямы записей, коммитить, удалять их, но хотелось бы более изящное решение.Тушение пожара керосином?
...
Рейтинг: 0 / 0
allocate extent ниже HWM
    #39814393
х.з.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicТушение пожара керосином?
про тушение пожара встречным пожаром надеюсь слышал?

ну и я открыт для советов окромя переписывания кода.
...
Рейтинг: 0 / 0
allocate extent ниже HWM
    #39814399
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
х.з.советов окромя переписывания кода.Таки бесполезная борьба вокруг говнокода.
...
Рейтинг: 0 / 0
allocate extent ниже HWM
    #39814426
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
х.з. Форматированные или нет - не важно. главное чтобы они уже были во время вставок во всех этих битмаповых картах обозначены.

есть сильное подозрение что они и так "обозначены". Просто оракл не сдвигает формальный признак HWM во избежание ненужного сканирования заведомо пустой части сегмента
Сделайте дампы первых 2=х блоков нового экстента
...
Рейтинг: 0 / 0
26 сообщений из 26, показаны все 2 страниц
Форумы / Oracle [игнор отключен] [закрыт для гостей] / allocate extent ниже HWM
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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