Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Значение поля меняется от условия  [new]
mRdUKE
Member

Откуда: ТЛТ
Сообщений: 487
Приветствую!
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> 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>

Есть диагноз?

К сообщению приложен файл. Размер - 9Kb
4 июн 19, 14:21    [21901554]     Ответить | Цитировать Сообщить модератору
 Re: Значение поля меняется от условия  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 17347
Как вариант - поломался индекс по (idhgap, proizv_from)
4 июн 19, 14:46    [21901583]     Ответить | Цитировать Сообщить модератору
 Re: Значение поля меняется от условия  [new]
mRdUKE
Member

Откуда: ТЛТ
Сообщений: 487
mRdUKE,

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>
Но сам факт напрягает..
4 июн 19, 14:47    [21901584]     Ответить | Цитировать Сообщить модератору
 Re: Значение поля меняется от условия  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 17347
mRdUKE
факт напрягает..

Индексы для начала перестройте, а уж потом напрягайтесь дальше.
4 июн 19, 14:49    [21901585]     Ответить | Цитировать Сообщить модератору
 Re: Значение поля меняется от условия  [new]
mRdUKE
Member

Откуда: ТЛТ
Сообщений: 487
andrey_anonymous
Как вариант - поломался индекс по (idhgap, proizv_from)

Поля "proizv_from" нет в индексах. А "поломался" как-то "мониторится"?
4 июн 19, 14:51    [21901587]     Ответить | Цитировать Сообщить модератору
 Re: Значение поля меняется от условия  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 1840
mRdUKE,

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

......
stax
4 июн 19, 14:56    [21901596]     Ответить | Цитировать Сообщить модератору
 Re: Значение поля меняется от условия  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 17347
mRdUKE
А "поломался" как-то "мониторится"?

Когда мониторится - индекс становится unusable.
Но иногда проскакивает.
В моей практике очень иногда, но DBA как-то плакалась, что много багов собрала на rebuild online.
Потому для начала - перестроить индексы, а уж потом начинать ломать голову.
4 июн 19, 14:58    [21901599]     Ответить | Цитировать Сообщить модератору
 Re: Значение поля меняется от условия  [new]
mRdUKE
Member

Откуда: ТЛТ
Сообщений: 487
Stax,

с idhgap
-----------------------------------------------------------------------------
| 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 |
-----------------------------------------------------------------------------
и без
-------------------------------------------------------------------------------------
| 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 нуждается в "перестройке"?
4 июн 19, 15:01    [21901606]     Ответить | Цитировать Сообщить модератору
 Re: Значение поля меняется от условия  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 1840
mRdUKE,

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

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

.....
stax
4 июн 19, 15:16    [21901617]     Ответить | Цитировать Сообщить модератору
 Re: Значение поля меняется от условия  [new]
mRdUKE
Member

Откуда: ТЛТ
Сообщений: 487
andrey_anonymous
Когда мониторится - индекс становится unusable.
В статусе "VALID" индекс.
andrey_anonymous
Потому для начала - перестроить индексы, а уж потом начинать ломать голову.
Заметил случайно, а так, - поди догадайся, что данные не отображаются, не потому, что их нет, а потому, что индекс "поломался" )
4 июн 19, 15:17    [21901620]     Ответить | Цитировать Сообщить модератору
 Re: Значение поля меняется от условия  [new]
mRdUKE
Member

Откуда: ТЛТ
Сообщений: 487
andrey_anonymous
В моей практике очень иногда, но DBA как-то плакалась, что много багов собрала на rebuild online.
mRdUKE
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Release 11.2.0.4.0 - 64bit Production
SE, - rebuild online не поддерживается.
4 июн 19, 15:29    [21901625]     Ответить | Цитировать Сообщить модератору
 Re: Значение поля меняется от условия  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 17347
mRdUKE
поди догадайся

Так помогло или где?
4 июн 19, 15:35    [21901631]     Ответить | Цитировать Сообщить модератору
 Re: Значение поля меняется от условия  [new]
mRdUKE
Member

Откуда: ТЛТ
Сообщений: 487
andrey_anonymous
mRdUKE
поди догадайся

Так помогло или где?
Нет, после rebuild результат не изменился.
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 
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             
4 июн 19, 15:50    [21901651]     Ответить | Цитировать Сообщить модератору
 Re: Значение поля меняется от условия  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 17347
Тогда имеет смысл поковырять поглубже.
Например, изучить планы с projection.
4 июн 19, 15:53    [21901654]     Ответить | Цитировать Сообщить модератору
 Re: Значение поля меняется от условия  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 17347
andrey_anonymous
Тогда имеет смысл поковырять поглубже.
Например, изучить планы с projection.

Да и полный DDL таблицы и ее индексов неплохо бы показать.
4 июн 19, 15:55    [21901655]     Ответить | Цитировать Сообщить модератору
 Re: Значение поля меняется от условия  [new]
mRdUKE
Member

Откуда: ТЛТ
Сообщений: 487
andrey_anonymous
Тогда имеет смысл поковырять поглубже.
Например, изучить планы с projection.

1
+
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
+
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 строк выбрано.
4 июн 19, 16:03    [21901660]     Ответить | Цитировать Сообщить модератору
 Re: Значение поля меняется от условия  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 17347
ddl индексов все-таки покажите.
Забавный план.
По ходу баг оптимизатора.
4 июн 19, 17:02    [21901721]     Ответить | Цитировать Сообщить модератору
 Re: Значение поля меняется от условия  [new]
oragraf
Member

Откуда: Moscow
Сообщений: 1197
mRdUKE,

попробуй вместо between указать явно больше/меньше. Был в какой то версии такой баг.
4 июн 19, 17:08    [21901723]     Ответить | Цитировать Сообщить модератору
 Re: Значение поля меняется от условия  [new]
xtender
Member

Откуда: Мск
Сообщений: 5119
mRdUKE,

Iot?
4 июн 19, 17:22    [21901736]     Ответить | Цитировать Сообщить модератору
 Re: Значение поля меняется от условия  [new]
xtender
Member

Откуда: Мск
Сообщений: 5119
mRdUKE,

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

update usb.lj_hgap t
set PROIZV_FROM = '80175'      
where rowid='*BAIK4x0FxAMhVyn+';
commit;
4 июн 19, 17:28    [21901744]     Ответить | Цитировать Сообщить модератору
 Re: Значение поля меняется от условия  [new]
mRdUKE
Member

Откуда: ТЛТ
Сообщений: 487
andrey_anonymous
ddl индексов все-таки покажите.
+
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 указать явно больше/меньше. Был в какой то версии такой баг.
Безрезультатно.
xtender
Iot?
Да, IOT.
xtender
если IOT, то, видимо, битые у вас данные... попробуйте проапдейтить поле и снова оба запроса сравнить
update usb.lj_hgap t
set PROIZV_FROM = '80175'      
where rowid='*BAIK4x0FxAMhVyn+';
commit;
Увы, и это не помогло.
До кучи выполнил "analyze table usb.lj_hgap compute statistics", и это мимо.
4 июн 19, 18:03    [21901787]     Ответить | Цитировать Сообщить модератору
 Re: Значение поля меняется от условия  [new]
DВА
Member

Откуда:
Сообщений: 5374
xtender
mRdUKE,

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

update usb.lj_hgap t
set PROIZV_FROM = '80175'      
where rowid='*BAIK4x0FxAMhVyn+';
commit;


так вроде с данными все ок,
вторичный индекс глючит
перестроить или хотя бы UPDATE BLOCK REFERENCES
4 июн 19, 18:09    [21901794]     Ответить | Цитировать Сообщить модератору
 Re: Значение поля меняется от условия  [new]
xtender
Member

Откуда: Мск
Сообщений: 5119
mRdUKE
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
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
4 июн 19, 18:15    [21901797]     Ответить | Цитировать Сообщить модератору
 Re: Значение поля меняется от условия  [new]
xtender
Member

Откуда: Мск
Сообщений: 5119
DВА
вторичный индекс глючит
из IOT по какой-то причине возвращается Null или пробелы, а из вторичного индекса '80175'.



mRdUKE,

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

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;
4 июн 19, 18:18    [21901799]     Ответить | Цитировать Сообщить модератору
 Re: Значение поля меняется от условия  [new]
DВА
Member

Откуда:
Сообщений: 5374
xtender
DВА
вторичный индекс глючит
из IOT по какой-то причине возвращается Null или пробелы, а из вторичного индекса '80175'.

наоборот
4 июн 19, 18:38    [21901824]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить