Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Значение поля меняется от условия / 25 сообщений из 34, страница 1 из 2
04.06.2019, 14:21
    #39822311
mRdUKE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение поля меняется от условия
Приветствую!
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
create table usb.lj_hgap
    (idhgap        number(10,0) not null,
    ...
    created        date default SYSDATE not null,
    ..
    proizv_from    varchar2(5 byte) default null
  ,
  constraint hgap_pk
  primary key (idhgap))
  ...

Код: sql
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.
SQL> select * from v$version
  2  /

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE    11.2.0.4.0      Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production

SQL> select rowid, idhgap, proizv_from
  2  from usb.lj_hgap
  3  where created between
  4  to_date('04.06.2019 14:05:40','dd.mm.yyyy hh24:mi:ss') and
  5  to_date('04.06.2019 14:05:50','dd.mm.yyyy hh24:mi:ss')
  6  /

ROWID                                         IDHGAP PROIZ
----------------------------------------- ---------- -----
*BAIK4x0FxAMhVyn+                            2328640

SQL> select rowid, idhgap, proizv_from
  2  from usb.lj_hgap
  3  where created between
  4  to_date('04.06.2019 14:05:40','dd.mm.yyyy hh24:mi:ss') and
  5  to_date('04.06.2019 14:05:50','dd.mm.yyyy hh24:mi:ss')
  6  and idhgap = 2328640
  7  /

ROWID                                         IDHGAP PROIZ
----------------------------------------- ---------- -----
*BAIK4x0FxAMhVyn+                            2328640 80175

SQL> select rowid, idhgap, proizv_from
  2  from usb.lj_hgap
  3  where created between
  4  to_date('04.06.2019 14:05:40','dd.mm.yyyy hh24:mi:ss') and
  5  to_date('04.06.2019 14:05:50','dd.mm.yyyy hh24:mi:ss')
  6  and idhgap = 2328640
  7    union all
  8  select rowid, idhgap, proizv_from
  9  from usb.lj_hgap
 10  where created between
 11  to_date('04.06.2019 14:05:40','dd.mm.yyyy hh24:mi:ss') and
 12  to_date('04.06.2019 14:05:50','dd.mm.yyyy hh24:mi:ss')
 13  /

ROWID                                         IDHGAP PROIZ
----------------------------------------- ---------- -----
*BAIK4x0FxAMhVyn+                            2328640 80175
*BAIK4x0FxAMhVyn+                            2328640

SQL>


Есть диагноз?
...
Рейтинг: 0 / 0
04.06.2019, 14:46
    #39822325
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение поля меняется от условия
Как вариант - поломался индекс по (idhgap, proizv_from)
...
Рейтинг: 0 / 0
04.06.2019, 14:47
    #39822326
mRdUKE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение поля меняется от условия
mRdUKE,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SQL> select rowid, idhgap, proizv_from
  2  from usb.lj_hgap
  3  where created between
  4  to_date('04.06.2019 14:05:40','dd.mm.yyyy hh24:mi:ss') and
  5  to_date('04.06.2019 14:05:50','dd.mm.yyyy hh24:mi:ss')
  6    union all
  7  select /*+ full(t) */ rowid, idhgap, proizv_from
  8  from usb.lj_hgap t
  9  where created between
 10  to_date('04.06.2019 14:05:40','dd.mm.yyyy hh24:mi:ss') and
 11  to_date('04.06.2019 14:05:50','dd.mm.yyyy hh24:mi:ss')
 12  /

ROWID                                         IDHGAP PROIZ
----------------------------------------- ---------- -----
*BAIK4x0FxAMhVyn+                            2328640
*BAIK4x0FxAMhVyn+                            2328640 80175

SQL>

Но сам факт напрягает..
...
Рейтинг: 0 / 0
04.06.2019, 14:49
    #39822327
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение поля меняется от условия
mRdUKEфакт напрягает..
Индексы для начала перестройте, а уж потом напрягайтесь дальше.
...
Рейтинг: 0 / 0
04.06.2019, 14:51
    #39822328
mRdUKE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение поля меняется от условия
andrey_anonymousКак вариант - поломался индекс по (idhgap, proizv_from)
Поля "proizv_from" нет в индексах. А "поломался" как-то "мониторится"?
...
Рейтинг: 0 / 0
04.06.2019, 14:56
    #39822330
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение поля меняется от условия
mRdUKE,

планы с idhgap = 2328640 и без?

......
stax
...
Рейтинг: 0 / 0
04.06.2019, 14:58
    #39822331
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение поля меняется от условия
mRdUKEА "поломался" как-то "мониторится"?
Когда мониторится - индекс становится unusable.
Но иногда проскакивает.
В моей практике очень иногда, но DBA как-то плакалась, что много багов собрала на rebuild online.
Потому для начала - перестроить индексы, а уж потом начинать ломать голову.
...
Рейтинг: 0 / 0
04.06.2019, 15:01
    #39822332
mRdUKE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение поля меняется от условия
Stax,

с idhgap
Код: sql
1.
2.
3.
4.
5.
6.
-----------------------------------------------------------------------------
| Id  | Operation         | Name    | Rows  | Bytes | Cost (%CPU)| Time     |
-----------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |         |     1 |    49 |     1   (0)| 00:00:01 |
|*  1 |  INDEX UNIQUE SCAN| HGAP_PK |     1 |    49 |     1   (0)| 00:00:01 |
-----------------------------------------------------------------------------

и без
Код: sql
1.
2.
3.
4.
5.
6.
7.
-------------------------------------------------------------------------------------
| Id  | Operation         | Name            | Rows  | Bytes | Cost (%CPU)| Time     |
-------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |                 |     1 |    49 |     1   (0)| 00:00:01 |
|*  1 |  INDEX UNIQUE SCAN| HGAP_PK         |     1 |    49 |     1   (0)| 00:00:01 |
|*  2 |   INDEX RANGE SCAN| LJ_HGAP_CREATED |     1 |       |     1   (0)| 00:00:01 |
-------------------------------------------------------------------------------------

отсюда вопрос - можно ли определить, что LJ_HGAP_CREATED нуждается в "перестройке"?
...
Рейтинг: 0 / 0
04.06.2019, 15:16
    #39822336
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение поля меняется от условия
mRdUKE,

імхо
баг оптимизации

попробовать /*+ index(t LJ_HGAP_CREATED */

.....
stax
...
Рейтинг: 0 / 0
04.06.2019, 15:17
    #39822339
mRdUKE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение поля меняется от условия
andrey_anonymousКогда мониторится - индекс становится unusable.В статусе "VALID" индекс.
andrey_anonymousПотому для начала - перестроить индексы, а уж потом начинать ломать голову.Заметил случайно, а так, - поди догадайся, что данные не отображаются, не потому, что их нет, а потому, что индекс "поломался" )
...
Рейтинг: 0 / 0
04.06.2019, 15:29
    #39822341
mRdUKE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение поля меняется от условия
andrey_anonymousВ моей практике очень иногда, но DBA как-то плакалась, что много багов собрала на rebuild online.mRdUKEBANNER
--------------------------------------------------------------------------------
Oracle Database 11g Release 11.2.0.4.0 - 64bit ProductionSE, - rebuild online не поддерживается.
...
Рейтинг: 0 / 0
04.06.2019, 15:35
    #39822345
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение поля меняется от условия
mRdUKEподи догадайся
Так помогло или где?
...
Рейтинг: 0 / 0
04.06.2019, 15:50
    #39822356
mRdUKE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение поля меняется от условия
andrey_anonymousmRdUKEподи догадайся
Так помогло или где?Нет, после rebuild результат не изменился.
Код: sql
1.
2.
3.
4.
5.
6.
select status, last_analyzed 
from dba_indexes 
where owner='USB' and index_name='LJ_HGAP_CREATED'
STATUS         LAST_ANALYZED            
-------------- ------------------------ 
VALID          04.06.2019 16:43:49 

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
select 1, rowid, idhgap, proizv_from
from usb.lj_hgap
where created between
to_date('04.06.2019 14:05:40','dd.mm.yyyy hh24:mi:ss') and
to_date('04.06.2019 14:05:50','dd.mm.yyyy hh24:mi:ss')
   union all
select /*+ full(t) */ 2, rowid, idhgap, proizv_from
from usb.lj_hgap t
where created between
to_date('04.06.2019 14:05:40','dd.mm.yyyy hh24:mi:ss') and
to_date('04.06.2019 14:05:50','dd.mm.yyyy hh24:mi:ss')
1                                            ROWID                                            IDHGAP                                       PROIZV_FROM       
-------------------------------------------- ------------------------------------------------ -------------------------------------------- ----------------- 
                                           1 *BAIK4x0FxAMhVyn+                                                                     2328640                   
                                           2 *BAIK4x0FxAMhVyn+                                                                     2328640 80175             
...
Рейтинг: 0 / 0
04.06.2019, 15:53
    #39822359
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение поля меняется от условия
Тогда имеет смысл поковырять поглубже.
Например, изучить планы с projection.
...
Рейтинг: 0 / 0
04.06.2019, 15:55
    #39822360
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение поля меняется от условия
andrey_anonymousТогда имеет смысл поковырять поглубже.
Например, изучить планы с projection.
Да и полный DDL таблицы и ее индексов неплохо бы показать.
...
Рейтинг: 0 / 0
04.06.2019, 16:03
    #39822364
mRdUKE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение поля меняется от условия
andrey_anonymousТогда имеет смысл поковырять поглубже.
Например, изучить планы с projection.
1
Код: sql
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.
select 1, rowid, idhgap, proizv_from from usb.lj_hgap where created
between to_date('04.06.2019 14:05:40','dd.mm.yyyy hh24:mi:ss') and
to_date('04.06.2019 14:05:50','dd.mm.yyyy hh24:mi:ss')

Plan hash value: 3221267406

-------------------------------------------------------------------------------------
| Id  | Operation         | Name            | Rows  | Bytes | Cost (%CPU)| Time     |
-------------------------------------------------------------------------------------

PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------
----------
|   0 | SELECT STATEMENT  |                 |       |       |     1 (100)|          |
|*  1 |  INDEX UNIQUE SCAN| HGAP_PK         |     1 |    49 |     1   (0)| 00:00:01 |
|*  2 |   INDEX RANGE SCAN| LJ_HGAP_CREATED |     1 |       |     1   (0)| 00:00:01 |
-------------------------------------------------------------------------------------

Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------

   1 - SEL$1 / LJ_HGAP@SEL$1
   2 - SEL$1 / LJ_HGAP@SEL$1


PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------
----------
Outline Data
-------------

  /*+
      BEGIN_OUTLINE_DATA
      IGNORE_OPTIM_EMBEDDED_HINTS
      OPTIMIZER_FEATURES_ENABLE('11.2.0.4')
      DB_VERSION('11.2.0.4')
      OPT_PARAM('_optimizer_cbqt_no_size_restriction' 'false')
      OPT_PARAM('optimizer_index_cost_adj' 20)
      OPT_PARAM('optimizer_index_caching' 80)

PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------
----------
      OUTLINE_LEAF(@"SEL$1")
      INDEX(@"SEL$1" "LJ_HGAP"@"SEL$1" ("LJ_HGAP"."CREATED"))
      END_OUTLINE_DATA
  */

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - access("CREATED">=TO_DATE(' 2019-06-04 14:05:40', 'syyyy-mm-dd
              hh24:mi:ss') AND "CREATED"<=TO_DATE(' 2019-06-04 14:05:50', 'syyyy-mm-dd
              hh24:mi:ss'))

PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------
----------
   2 - access("CREATED">=TO_DATE(' 2019-06-04 14:05:40', 'syyyy-mm-dd
              hh24:mi:ss') AND "CREATED"<=TO_DATE(' 2019-06-04 14:05:50', 'syyyy-mm-dd
              hh24:mi:ss'))

Column Projection Information (identified by operation id):
-----------------------------------------------------------

   1 - ROWID[ROWID,31], "IDHGAP"[NUMBER,22], "PROIZV_FROM"[VARCHAR2,5]
   2 - ROWID[ROWID,31], "IDHGAP"[NUMBER,22], "CREATED"[DATE,7],
       "PROIZV_FROM"[VARCHAR2,5], "LJ_HGAP".ROWID[ROWID,31]


55 строк выбрано.

2
Код: sql
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.
select /*+ full(t) */ 2, rowid, idhgap, proizv_from from usb.lj_hgap t
where created between to_date('04.06.2019 14:05:40','dd.mm.yyyy
hh24:mi:ss') and to_date('04.06.2019 14:05:50','dd.mm.yyyy hh24:mi:ss')

Plan hash value: 2901492504

--------------------------------------------------------------------------------
| Id  | Operation            | Name    | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------------

PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------
----------
|   0 | SELECT STATEMENT     |         |       |       | 36324 (100)|          |
|*  1 |  INDEX FAST FULL SCAN| HGAP_PK |     1 |    49 | 36324   (1)| 00:07:16 |
--------------------------------------------------------------------------------

Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------

   1 - SEL$1 / T@SEL$1

Outline Data
-------------

PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------
----------

  /*+
      BEGIN_OUTLINE_DATA
      IGNORE_OPTIM_EMBEDDED_HINTS
      OPTIMIZER_FEATURES_ENABLE('11.2.0.4')
      DB_VERSION('11.2.0.4')
      OPT_PARAM('_optimizer_cbqt_no_size_restriction' 'false')
      OPT_PARAM('optimizer_index_cost_adj' 20)
      OPT_PARAM('optimizer_index_caching' 80)
      OUTLINE_LEAF(@"SEL$1")
      INDEX_FFS(@"SEL$1" "T"@"SEL$1" ("LJ_HGAP"."IDHGAP"))

PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------
----------
      END_OUTLINE_DATA
  */

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - filter(("CREATED">=TO_DATE(' 2019-06-04 14:05:40', 'syyyy-mm-dd
              hh24:mi:ss') AND "CREATED"<=TO_DATE(' 2019-06-04 14:05:50',
              'syyyy-mm-dd hh24:mi:ss')))

Column Projection Information (identified by operation id):

PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------
----------
-----------------------------------------------------------

   1 - ROWID[ROWID,31], "IDHGAP"[NUMBER,22], "PROIZV_FROM"[VARCHAR2,5]


48 строк выбрано.

...
Рейтинг: 0 / 0
04.06.2019, 17:02
    #39822402
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение поля меняется от условия
ddl индексов все-таки покажите.
Забавный план.
По ходу баг оптимизатора.
...
Рейтинг: 0 / 0
04.06.2019, 17:08
    #39822404
oragraf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение поля меняется от условия
mRdUKE,

попробуй вместо between указать явно больше/меньше. Был в какой то версии такой баг.
...
Рейтинг: 0 / 0
04.06.2019, 17:22
    #39822413
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение поля меняется от условия
mRdUKE,

Iot?
...
Рейтинг: 0 / 0
04.06.2019, 17:28
    #39822420
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение поля меняется от условия
mRdUKE,

если IOT, то, видимо, битые у вас данные... попробуйте проапдейтить поле и снова оба запроса сравнить

Код: plsql
1.
2.
3.
4.
update usb.lj_hgap t
set PROIZV_FROM = '80175'      
where rowid='*BAIK4x0FxAMhVyn+';
commit;
...
Рейтинг: 0 / 0
04.06.2019, 18:03
    #39822450
mRdUKE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение поля меняется от условия
andrey_anonymousddl индексов все-таки покажите.
Код: sql
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.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
CREATE INDEX lj_hgap_for_pers ON lj_hgap
  (
    ntab                            ASC,
    hgap_type                       ASC,
    gap_sost                        ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_table
  STORAGE   (
    INITIAL     262144
    NEXT        262144
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/

CREATE INDEX lj_hgap_index_for_300_2 ON lj_hgap
  (
    created                         ASC,
    hgap_type                       ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_index
  STORAGE   (
    INITIAL     262144
    NEXT        262144
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/

CREATE INDEX lj_hgap_postnum ON lj_hgap
  (
    post_num                        ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_index
  STORAGE   (
    INITIAL     1835008
    NEXT        262144
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/

CREATE INDEX lj_hgap_i1 ON lj_hgap
  (
    doc_type                        ASC,
    doc_ser                         ASC,
    doc_num                         ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_table
  STORAGE   (
    INITIAL     262144
    NEXT        262144
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/

CREATE INDEX lj_hgap_sp_i3 ON lj_hgap
  (
    sp                              ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_table
  STORAGE   (
    INITIAL     262144
    NEXT        262144
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/

CREATE INDEX lj_hgap_idosn ON lj_hgap
  (
    idosn_fk                        ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_table
  STORAGE   (
    INITIAL     262144
    NEXT        262144
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/

CREATE INDEX lj_hgap_ntab ON lj_hgap
  (
    ntab                            ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_index
  STORAGE   (
    INITIAL     1835008
    NEXT        1024000
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/

CREATE INDEX lj_hgap_created ON lj_hgap
  (
    created                         ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_index
  STORAGE   (
    INITIAL     262144
    NEXT        262144
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/

CREATE INDEX lj_hgap_proizv ON lj_hgap
  (
    proizv                          ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_table
  STORAGE   (
    INITIAL     262144
    NEXT        262144
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/

CREATE INDEX lj_hgap_docnum ON lj_hgap
  (
    doc_num                         ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_table
  STORAGE   (
    INITIAL     262144
    NEXT        262144
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/

CREATE INDEX lj_hgap_print ON lj_hgap
  (
    hgap_print                      ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_index
  STORAGE   (
    INITIAL     262144
    NEXT        262144
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/

CREATE INDEX lj_hgap_updated ON lj_hgap
  (
    updated                         ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_index
  STORAGE   (
    INITIAL     262144
    NEXT        262144
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/

CREATE INDEX lj_hgap_startdate ON lj_hgap
  (
    start_date                      ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_table
  STORAGE   (
    INITIAL     262144
    NEXT        262144
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/

CREATE INDEX lj_hgap_expdate ON lj_hgap
  (
    exp_date                        ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_table
  STORAGE   (
    INITIAL     262144
    NEXT        262144
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/

CREATE INDEX idx_lj_hgap_fio_dr ON lj_hgap
  (
    TRIM("FNAME") ASC,
    TRIM("INAME") ASC,
    TRIM("ONAME") ASC,
    born_date                       ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_index
  STORAGE   (
    INITIAL     65536
    NEXT        1048576
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/

CREATE INDEX idx_lj_hgap_fio_gs ON lj_hgap
  (
    TRIM("FNAME") ASC,
    TRIM("INAME") ASC,
    TRIM("ONAME") ASC,
    gap_sost                        ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_index
  STORAGE   (
    INITIAL     65536
    NEXT        1048576
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/

CREATE INDEX lj_hgap_chip2 ON lj_hgap
  (
    chip2                           ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_table
  STORAGE   (
    INITIAL     65536
    NEXT        1048576
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/

CREATE INDEX lj_hgap_prlng ON lj_hgap
  (
    prlnged                         ASC,
    prlngby                         ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_table
  STORAGE   (
    INITIAL     65536
    NEXT        1048576
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/

CREATE INDEX lj_hgap_uv_date ON lj_hgap
  (
    uv_date                         ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_table
  STORAGE   (
    INITIAL     65536
    NEXT        1048576
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/

CREATE INDEX lj_hgap_trim_fio ON lj_hgap
  (
    TRIM("FNAME")||TRIM("INAME")||TRIM("ONAME") ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_table
  STORAGE   (
    INITIAL     65536
    NEXT        1048576
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/

CREATE INDEX lj_hgap_fio ON lj_hgap
  (
    fname                           ASC,
    iname                           ASC,
    oname                           ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_index
  STORAGE   (
    INITIAL     1835008
    NEXT        262144
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/

CREATE INDEX sync_chk_test ON lj_hgap
  (
    doc_ser                         ASC,
    doc_num                         ASC,
    doc_type                        ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_table
  STORAGE   (
    INITIAL     262144
    NEXT        262144
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/

CREATE INDEX lj_hgap_born_date ON lj_hgap
  (
    born_date                       ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_index
  STORAGE   (
    INITIAL     1835008
    NEXT        1024000
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/

CREATE INDEX lj_hgap_index_2 ON lj_hgap
  (
    fname                           ASC,
    iname                           ASC,
    ntab                            ASC,
    born_date                       ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_table
  STORAGE   (
    INITIAL     262144
    NEXT        262144
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/

CREATE INDEX lj_hgap_idhgap2 ON lj_hgap
  (
    idhgap2                         ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_table
  STORAGE   (
    INITIAL     262144
    NEXT        262144
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/

CREATE INDEX lj_hgap_index_3 ON lj_hgap
  (
    idhgap                          ASC,
    born_date                       ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_table
  STORAGE   (
    INITIAL     262144
    NEXT        262144
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/

oragrafпопробуй вместо between указать явно больше/меньше. Был в какой то версии такой баг.Безрезультатно.
xtenderIot?Да, IOT.
xtenderесли IOT, то, видимо, битые у вас данные... попробуйте проапдейтить поле и снова оба запроса сравнить
Код: plsql
1.
2.
3.
4.
update usb.lj_hgap t
set PROIZV_FROM = '80175'      
where rowid='*BAIK4x0FxAMhVyn+';
commit;

Увы, и это не помогло.
До кучи выполнил "analyze table usb.lj_hgap compute statistics", и это мимо.
...
Рейтинг: 0 / 0
04.06.2019, 18:09
    #39822453
DВА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение поля меняется от условия
xtendermRdUKE,

если IOT, то, видимо, битые у вас данные... попробуйте проапдейтить поле и снова оба запроса сравнить

Код: plsql
1.
2.
3.
4.
update usb.lj_hgap t
set PROIZV_FROM = '80175'      
where rowid='*BAIK4x0FxAMhVyn+';
commit;



так вроде с данными все ок,
вторичный индекс глючит
перестроить или хотя бы UPDATE BLOCK REFERENCES
...
Рейтинг: 0 / 0
04.06.2019, 18:15
    #39822454
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение поля меняется от условия
mRdUKE
Код: sql
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.
select 1, rowid, idhgap, proizv_from from usb.lj_hgap where created
between to_date('04.06.2019 14:05:40','dd.mm.yyyy hh24:mi:ss') and
to_date('04.06.2019 14:05:50','dd.mm.yyyy hh24:mi:ss')

Plan hash value: 3221267406

-------------------------------------------------------------------------------------
| Id  | Operation         | Name            | Rows  | Bytes | Cost (%CPU)| Time     |
-------------------------------------------------------------------------------------

PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------
----------
|   0 | SELECT STATEMENT  |                 |       |       |     1 (100)|          |
|*  1 |  INDEX UNIQUE SCAN| HGAP_PK         |     1 |    49 |     1   (0)| 00:00:01 |
|*  2 |   INDEX RANGE SCAN| LJ_HGAP_CREATED |     1 |       |     1   (0)| 00:00:01 |
-------------------------------------------------------------------------------------

Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------

   1 - SEL$1 / LJ_HGAP@SEL$1
   2 - SEL$1 / LJ_HGAP@SEL$1


PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------
----------
Outline Data
-------------

  /*+
      BEGIN_OUTLINE_DATA
      IGNORE_OPTIM_EMBEDDED_HINTS
      OPTIMIZER_FEATURES_ENABLE('11.2.0.4')
      DB_VERSION('11.2.0.4')
      OPT_PARAM('_optimizer_cbqt_no_size_restriction' 'false')
      OPT_PARAM('optimizer_index_cost_adj' 20)
      OPT_PARAM('optimizer_index_caching' 80)

PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------
----------
      OUTLINE_LEAF(@"SEL$1")
      INDEX(@"SEL$1" "LJ_HGAP"@"SEL$1" ("LJ_HGAP"."CREATED"))
      END_OUTLINE_DATA
  */

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - access("CREATED">=TO_DATE(' 2019-06-04 14:05:40', 'syyyy-mm-dd
              hh24:mi:ss') AND "CREATED"<=TO_DATE(' 2019-06-04 14:05:50', 'syyyy-mm-dd
              hh24:mi:ss'))

PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------
----------
   2 - access("CREATED">=TO_DATE(' 2019-06-04 14:05:40', 'syyyy-mm-dd
              hh24:mi:ss') AND "CREATED"<=TO_DATE(' 2019-06-04 14:05:50', 'syyyy-mm-dd
              hh24:mi:ss'))

Column Projection Information (identified by operation id):
-----------------------------------------------------------

   1 - ROWID[ROWID,31], "IDHGAP"[NUMBER,22], "PROIZV_FROM"[VARCHAR2,5]
   2 - ROWID[ROWID,31], "IDHGAP"[NUMBER,22], "CREATED"[DATE,7],
       "PROIZV_FROM"[VARCHAR2,5], "LJ_HGAP".ROWID[ROWID,31]


это был реальный план? ДДЛ самой IOT еще бы посмотреть.

судя по
mRdUKE
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
CREATE INDEX lj_hgap_created ON lj_hgap
  (
    created                         ASC
  )
  PCTFREE     10
  INITRANS    2
  MAXTRANS    255
  TABLESPACE  usb_index
  STORAGE   (
    INITIAL     262144
    NEXT        262144
    MINEXTENTS  1
    MAXEXTENTS  2147483645
  )
NOPARALLEL
LOGGING
/


первичный ключ включает "IDHGAP" и "PROIZV_FROM"? Тогда по идее "PROIZV_FROM" должен быть not null
...
Рейтинг: 0 / 0
04.06.2019, 18:18
    #39822455
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение поля меняется от условия
DВАвторичный индекс глючитиз IOT по какой-то причине возвращается Null или пробелы, а из вторичного индекса '80175'.



mRdUKE,

попробуй так тогда:

Код: plsql
1.
2.
3.
4.
update usb.lj_hgap t set PROIZV_FROM = NULL where rowid='*BAIK4x0FxAMhVyn+';
update usb.lj_hgap t set PROIZV_FROM = 'ZZZZZ' where rowid='*BAIK4x0FxAMhVyn+';
update usb.lj_hgap t set PROIZV_FROM = '80175' where rowid='*BAIK4x0FxAMhVyn+';
commit;
...
Рейтинг: 0 / 0
04.06.2019, 18:38
    #39822464
DВА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение поля меняется от условия
xtenderDВАвторичный индекс глючитиз IOT по какой-то причине возвращается Null или пробелы, а из вторичного индекса '80175'.

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


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