powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Падает скорость вставки в партицию со временем
13 сообщений из 13, страница 1 из 1
Падает скорость вставки в партицию со временем
    #39453970
Chukis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется партиционная таблица (разбита по полугодиям на партиции). БД на Oracle 10g.
В "чистую партицию" записи вставляются быстро, но со временем, по мере заполнения данными, скорость вставки падает в 5-7 раз.
Вставка записей происходит через конструкцию
insert /*+APPEND*/ into Table_Name values ...

С чем может быть связана потеря скорости записи и как с этим бороться? Плодить много мелких партиций не хочется.
...
Рейтинг: 0 / 0
Падает скорость вставки в партицию со временем
    #39453989
ora601
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chukis,

Индексы мержаться долго? Ну и ожидания/рантайм статистики по планам конечно помогут.
...
Рейтинг: 0 / 0
Падает скорость вставки в партицию со временем
    #39453990
Chukis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ora601,
А это нормальная ситуация, когда падает скорость вставки в партицию по мере её заполнения?
...
Рейтинг: 0 / 0
Падает скорость вставки в партицию со временем
    #39454010
Chukis,

0) ты уж определись - или у тебя APPEND, или VALUES
1) какие и сколько индексов есть на таблице?
2) какие и сколько ограничений целостности есть на таблице?
...
Рейтинг: 0 / 0
Падает скорость вставки в партицию со временем
    #39454011
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chukis,

ddl таблицы и индексов покажите.

А так вообще, можно по ожиданиям посмотреть чем "замедленная" вставка занимается.
...
Рейтинг: 0 / 0
Падает скорость вставки в партицию со временем
    #39454045
ora601
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chukis,

Если еще + APPEND, то это не очень нормально,
А вот если APPEND + VALUES на 10g то это просто может быть фрагментация.
...
Рейтинг: 0 / 0
Падает скорость вставки в партицию со временем
    #39454069
ora601Chukis,

Если еще + APPEND, то это не очень нормально,
А вот если APPEND + VALUES на 10g то это просто может быть фрагментация.с каких это пор append стал работать с values?

З. Ы.
Глюк в 11.1, который тут же пофиксили - не в счёт...
...
Рейтинг: 0 / 0
Падает скорость вставки в партицию со временем
    #39454074
ora601,

Ну и это - append вставляет данные в "чистые" сегменты выше HWM и никогда не использует уже выделенные под таблицу "грязные", ему пофиг на фрагментацию ...
...
Рейтинг: 0 / 0
Падает скорость вставки в партицию со временем
    #39454172
Nobody1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый Э - Эхora601Chukis,

Если еще + APPEND, то это не очень нормально,
А вот если APPEND + VALUES на 10g то это просто может быть фрагментация.с каких это пор append стал работать с values?
Может, с 9i? (я не утверждаю, я предполагаю, сейчас проверить не могу)

Код: plsql
1.
2.
3.
4.
5.
INSERT /*+APPEND */ ALL
INTO cities values (1, 'Москва', sysdate + 1)
INTO cities values (2, 'Питер', sysdate + 2)
INTO cities values (3, 'Гадюкино', sysdate + 3)
SELECT * FROM dual;
...
Рейтинг: 0 / 0
Падает скорость вставки в партицию со временем
    #39454242
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
INSERT ALL это не тот VALUES, поскольку все равно есть SUBQUERY
А обычный INSERT ... VALUES работает только с APPEND_VALUES
Код: 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.
tst> create table cities(a number, b varchar2(30), c date);

Table created.

tst> INSERT /*+APPEND_VALUES */ INTO cities values (1, 'Москва', sysdate + 1);

1 row created.

tst> /
INSERT /*+APPEND_VALUES */ INTO cities values (1, 'Москва', sysdate + 1)
                                *
ERROR at line 1:
ORA-12838: cannot read/modify an object after modifying it in parallel


tst> rollback;

Rollback complete.

tst> INSERT /*+APPEND */ ALL
  2  INTO cities values (1, 'Москва', sysdate + 1)
  3  INTO cities values (2, 'Питер', sysdate + 2)
  4  INTO cities values (3, 'Гадюкино', sysdate + 3)
  5  SELECT * FROM dual;

3 rows created.

tst> /
INTO cities values (1, 'Москва', sysdate + 1)
     *
ERROR at line 2:
ORA-12838: cannot read/modify an object after modifying it in parallel

tst> rollback;

Rollback complete.

tst> INSERT /*+APPEND */ INTO cities values (1, 'Москва', sysdate + 1);

1 row created.

tst> /

1 row created.

tst> insert into cities values (1, 'Москва', sysdate + 1);

1 row created.

Про аномалию в 11.1 уже сказали
...
Рейтинг: 0 / 0
Падает скорость вставки в партицию со временем
    #39454812
Chukis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С insert я ошибся малость, конечно без values используется)
INSERT /*+APPEND*/ INTO MYTABLE SELECT .....


ddl для таблица вот такой:


Код: 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.
CREATE TABLE MYTable
    (
	dpk                            DATE,
    roi                            VARCHAR2(8),
    daot                            DATE,
    pul                            VARCHAR2(6),
    mes                            VARCHAR2(32),
    lic                            VARCHAR2(20),
    rolr                            VARCHAR2(20),
    otr                            VARCHAR2(20),
    ser                            VARCHAR2(20),
    ots                            VARCHAR2(2),
    avk                            VARCHAR2(2),
    po1                            VARCHAR2(3),
    po2                            VARCHAR2(3),
    sig                           VARCHAR2(10),
    crc                            NUMBER(12,0),
    vot                            VARCHAR2(5)
     )
  PCTFREE     0
  INITRANS    1
  MAXTRANS    255
  TABLESPACE  parts
  STORAGE   (
    INITIAL     524288000
    NEXT        524288000
    PCTINCREASE 0
    MINEXTENTS  1
    BUFFER_POOL DEFAULT
  )
  PARTITION BY RANGE (DPK)
  (
  PARTITION parts27 VALUES LESS THAN (TO_DATE(' 2017-06-30 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
  PCTFREE     0
  INITRANS    1
  MAXTRANS    255,
  PARTITION parts271 VALUES LESS THAN (TO_DATE(' 2017-12-31 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
  PCTFREE     0
  INITRANS    1
  MAXTRANS    255,
  PARTITION parts30 VALUES LESS THAN (MAXVALUE)
  PCTFREE     0
  INITRANS    1
  MAXTRANS    255
  )
/

-- Indexes for MYTable

CREATE INDEX na_crc ON MYTable
  (
    crc                             ASC
  )
  PCTFREE     0
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  idparts
  STORAGE   (
    INITIAL     104857600
    NEXT        104857600
    PCTINCREASE 0
    MINEXTENTS  1
    MAXEXTENTS  2147483645
    BUFFER_POOL DEFAULT
  )
  LOCAL (
  PARTITION parts27
  PCTFREE     0
  INITRANS    2
  MAXTRANS    255,
  PARTITION parts271
  PCTFREE     0
  INITRANS    2
  MAXTRANS    255,
  PARTITION parts30
  PCTFREE     0
  INITRANS    2
  MAXTRANS    255
  )
/

CREATE INDEX na_lic ON MYTable
  (
    sig                            ASC,
    lic                             ASC
  )
  PCTFREE     0
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  idparts
  STORAGE   (
    INITIAL     104857600
    NEXT        104857600
    PCTINCREASE 0
    MINEXTENTS  1
    MAXEXTENTS  2147483645
    BUFFER_POOL DEFAULT
  )
  PARTITION parts27
  PCTFREE     0
  INITRANS    2
  MAXTRANS    255,
  PARTITION parts271
  PCTFREE     0
  INITRANS    2
  MAXTRANS    255,
  PARTITION parts30
  PCTFREE     0
  INITRANS    2
  MAXTRANS    255
  )
/

CREATE INDEX na_roi ON MYTable
  (
    daot                             ASC,
    roi                             ASC,
    avk                             ASC
  )
  PCTFREE     0
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  idparts
  STORAGE   (
    INITIAL     104857600
    NEXT        104857600
    PCTINCREASE 0
    MINEXTENTS  1
    MAXEXTENTS  2147483645
    BUFFER_POOL DEFAULT
  )
  LOCAL (
  PARTITION parts27
  PCTFREE     0
  INITRANS    2
  MAXTRANS    255,
  PARTITION parts271
  PCTFREE     0
  INITRANS    2
  MAXTRANS    255,
  PARTITION parts30
  PCTFREE     0
  INITRANS    2
  MAXTRANS    255
  )
/



Статистика на таблицу собиралась 3 дня назад.
...
Рейтинг: 0 / 0
Падает скорость вставки в партицию со временем
    #39454814
Chukis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Chukis,
Удаление строк из таблицы не производится, она накопительная. Только операции вставка и селект
...
Рейтинг: 0 / 0
Падает скорость вставки в партицию со временем
    #39454841
ora601
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый Э - Эхora601Chukis,

Если еще + APPEND, то это не очень нормально,
А вот если APPEND + VALUES на 10g то это просто может быть фрагментация.
с каких это пор append стал работать с values?


А я и не утвержадал это :)
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Падает скорость вставки в партицию со временем
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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