Текущее время: Ср, июн 20 2018, 02:05

Часовой пояс: UTC + 4 часа


Правила форума


ВНИМАНИЕ! Прежде чем задавать вопрос, ознакомьтесь со ссылками ниже:

Вопросы по отличиям версий SAP, Add-On, EHP - сюда
Вопросы по SAP Front End (SAPlogon, SAPgui, guiXT и т.д.) - сюда
Вопросы по LSMW - сюда
Вопросы по архивации в SAP - сюда
Вопросы по SAP GRC - сюда
Вопросы по SAP Business Workplace (почте SAP) и SAP Office - сюда
Вопросы по miniSAP (SAP mini basis) - сюда
Вопросы по SAP HANA - сюда
Вопросы по лицензированию продуктов SAP - сюда



Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения: Re: Oracle 12c 12.2 -> high cpu usage
СообщениеДобавлено: Пн, май 07 2018, 18:50 
Директор
Директор

Зарегистрирован:
Чт, май 12 2005, 12:10
Сообщения: 1012
Пол: Мужской
SergoB написал(а):
Я посмотрел еще раз ваши селекты, можете посмотреть что значит --> "P"."OTYPE"='C'
Я не вижу такого для селекта с вашего прода.


HRP1002.OTYPE - тип объекта, С, должность.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oracle 12c 12.2 -> high cpu usage
СообщениеДобавлено: Пн, май 07 2018, 18:52 
Директор
Директор

Зарегистрирован:
Чт, май 12 2005, 12:10
Сообщения: 1012
Пол: Мужской
Наверное потому, что:

В проде
ядро 745
версия DBSL: 745.04, пакет 320

В тесте
ядро 753
версия DBSL: 753.02, пакет 111


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oracle 12c 12.2 -> high cpu usage
СообщениеДобавлено: Пн, май 07 2018, 19:01 
Менеджер
Менеджер

Зарегистрирован:
Пн, фев 11 2008, 12:38
Сообщения: 615
Попробуйте для начала с тем же ядром, что бы был прям SqlID одинаковый, тогда легче Oracle на баг указывать, если это баг с их стороны.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oracle 12c 12.2 -> high cpu usage
СообщениеДобавлено: Вт, май 08 2018, 10:39 
Директор
Директор

Зарегистрирован:
Чт, май 12 2005, 12:10
Сообщения: 1012
Пол: Мужской
SergoB написал(а):
Попробуйте для начала с тем же ядром, что бы был прям SqlID одинаковый, тогда легче Oracle на баг указывать, если это баг с их стороны.

Сейчас не реально.

Селект в обеих системах один и тот же:
Code:
  SELECT TLINE TABSEQNR FROM HRP1002 AS P
    INNER JOIN HRT1002 AS T ON P~TABNR = T~TABNR
  INTO CORRESPONDING FIELDS OF TABLE lt_hrline
    WHERE OTYPE = 'C' AND BEGDA <= i_date AND ENDDA >= i_date AND objid = i_STELL
  ORDER BY TABSEQNR.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oracle 12c 12.2 -> high cpu usage
СообщениеДобавлено: Пт, май 11 2018, 04:20 
Специалист
Специалист

Зарегистрирован:
Ср, янв 16 2013, 05:04
Сообщения: 167
Egal написал:
Селект в обеих системах один и тот же:
Code:
  SELECT TLINE TABSEQNR FROM HRP1002 AS P
    INNER JOIN HRT1002 AS T ON P~TABNR = T~TABNR
  INTO CORRESPONDING FIELDS OF TABLE lt_hrline
    WHERE OTYPE = 'C' AND BEGDA <= i_date AND ENDDA >= i_date AND objid = i_STELL
  ORDER BY TABSEQNR.

В выложенном AWR вижу, что проблема все же не в CPU, а чтениях из буферного кэша:

Code:
db file sequential read      48.7   
DB CPU   46.6   


и если искать в ТОПах запрос который дает наибольший вклад в эти ожидания то мы видим запрос с sql_id 6m50v0x5g9mrq и в топе по времени выполнения и в топе по пользовательскому IO. Собственно ADDM на 94 странице и рекомендует начать оптимизацию с этого запроса:

Code:
SELECT DISTINCT "MANDT", "BUKRS", "KUNNR", "UMSKS", "UMSKZ", "AUGDT", "AUGBL", "ZUONR", "GJAHR", "BELNR", "BUZEI", "BUDAT", "BLDAT", "CPUDT", "WAERS", "XBLNR", "BLART", "MONAT", "BSCHL", "ZUMSK", "SHKZG", "GSBER", "MWSKZ", "DMBTR", "WRBTR", "MWSTS", "WMWST", "BDIFF", "BDIF2", "SGTXT", "PROJN", "AUFNR", "ANLN1", "ANLN2", "SAKNR", "HKONT", "FKONT", "FILKD", "ZFBDT", "ZTERM", "ZBD1T", "ZBD2T", "ZBD3T", "ZBD1P", "ZBD2P", "SKFBT", "SKNTO", "WSKTO", "ZLSCH", "ZLSPR", "ZBFIX", "HBKID ", "BVTYP", "REBZG", "REBZJ", "REBZZ", "SAMNR", "ANFBN", "ANFBJ", "ANFBU", "ANFAE", "MANSP", "MSCHL", "MADAT", "MANST", "MABER", "XNETB", "XANET", "XCPDD", "XINVE", "XZAHL", "MWSK1", "DMBT1", "WRBT1", "MWSK2", "DMBT2", "WRBT2", "MWSK3", "DMBT3", "WRBT3", "BSTAT", "VBUND", "VBELN", "REBZT", "INFAE", "STCEG", "EGBLD", "EGLLD", "RSTGR", "XNOZA", "VERTT", "VERTN", "VBEWA", "WVERW", "PROJK", "FIPOS", "NPLNR", "AUFPL", "APLZL", "XEGDR", "DMBE2", "DMBE3", "DMB21", "DMB22", "DMB23", "DMB31", "DMB32", "DMB33", "BDIF3", "XRAGL", "UZAWE", "XSTOV", "MWST2", "MWST3", "SKNT2", "SKNT3", "XREF1", "XREF2", "XARCH", "PSWSL", "PSWBT", "LZBKZ", "LANDL", "IMKEY", "VBEL2", "VPOS2", "POSN2", "ETEN2", "FISTL", "GEBER", "DABRZ", "XNEGP", "KOSTL", "RFZEI", "KKBER", "EMPFB", "PRCTR", "XREF3", "QSSKZ", "ZINKZ", "DTWS1", "DTWS2", "DTWS3", "DTWS4", "XPYPR", "KIDNO", "ABSBT", "CCBTC", "PYCUR", "PYAMT", "BUPLA", "SECCO", "CESSION_KZ", "PPDIFF", "PPDIF2", "PPDIF3", "KBLNR", "KBLPOS", "GRANT_NBR", "GMVKZ", "SRTYPE", "LOTKZ", "FKBER", "INTRENO", "PPRCT", "BUZID", "AUGGJ", "HKTID", "BUDGET_PD", "PAYS_PROV", "PAYS_TRAN", "MNDID", "KONTT", "KONTL", "UEBGDAT", "VNAME", "EGRUP", "BTYPE", "PROPMANO" FROM "BSAD" WHERE "MANDT"=:A0 AND "KUNNR" IN (:A1) AND "BUKRS"=:A2 AND "BUDAT"<=:A3 AND "HKONT" LIKE :A4 AND ("UMSKZ"=:A5 OR "UMSKZ"=:A6) AND "ZINKZ"=:A7


Если вы все-таки хотите пооптимизировать ваш конкретный запрос, то нужно найти его sql_id, child_number и на проде и на тесте

Code:
select sql_id,child_number,sql_text from v$sql where upper(sql_text) like '%SELECT DISTINCT "MANDT", "BUKRS", "KUNNR", "UMSKS""%'


а затем вытащить реальные планы выполнения запросом:
Code:
select * from table(dbms_xplan.display_cursor(ваш sql_id', ваш child_number));


тут уже можно будет и посравнивать


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oracle 12c 12.2 -> high cpu usage
СообщениеДобавлено: Пт, май 11 2018, 09:28 
Менеджер
Менеджер

Зарегистрирован:
Пн, фев 11 2008, 12:38
Сообщения: 615
sap2me написал(а):
Egal написал:
Селект в обеих системах один и тот же:
Code:
  SELECT TLINE TABSEQNR FROM HRP1002 AS P
    INNER JOIN HRT1002 AS T ON P~TABNR = T~TABNR
  INTO CORRESPONDING FIELDS OF TABLE lt_hrline
    WHERE OTYPE = 'C' AND BEGDA <= i_date AND ENDDA >= i_date AND objid = i_STELL
  ORDER BY TABSEQNR.

В выложенном AWR вижу, что проблема все же не в CPU, а чтениях из буферного кэша:

Code:
db file sequential read      48.7   
DB CPU   46.6   


и если искать в ТОПах запрос который дает наибольший вклад в эти ожидания то мы видим запрос с sql_id 6m50v0x5g9mrq и в топе по времени выполнения и в топе по пользовательскому IO. Собственно ADDM на 94 странице и рекомендует начать оптимизацию с этого запроса:

Code:
SELECT DISTINCT "MANDT", "BUKRS", "KUNNR", "UMSKS", "UMSKZ", "AUGDT", "AUGBL", "ZUONR", "GJAHR", "BELNR", "BUZEI", "BUDAT", "BLDAT", "CPUDT", "WAERS", "XBLNR", "BLART", "MONAT", "BSCHL", "ZUMSK", "SHKZG", "GSBER", "MWSKZ", "DMBTR", "WRBTR", "MWSTS", "WMWST", "BDIFF", "BDIF2", "SGTXT", "PROJN", "AUFNR", "ANLN1", "ANLN2", "SAKNR", "HKONT", "FKONT", "FILKD", "ZFBDT", "ZTERM", "ZBD1T", "ZBD2T", "ZBD3T", "ZBD1P", "ZBD2P", "SKFBT", "SKNTO", "WSKTO", "ZLSCH", "ZLSPR", "ZBFIX", "HBKID ", "BVTYP", "REBZG", "REBZJ", "REBZZ", "SAMNR", "ANFBN", "ANFBJ", "ANFBU", "ANFAE", "MANSP", "MSCHL", "MADAT", "MANST", "MABER", "XNETB", "XANET", "XCPDD", "XINVE", "XZAHL", "MWSK1", "DMBT1", "WRBT1", "MWSK2", "DMBT2", "WRBT2", "MWSK3", "DMBT3", "WRBT3", "BSTAT", "VBUND", "VBELN", "REBZT", "INFAE", "STCEG", "EGBLD", "EGLLD", "RSTGR", "XNOZA", "VERTT", "VERTN", "VBEWA", "WVERW", "PROJK", "FIPOS", "NPLNR", "AUFPL", "APLZL", "XEGDR", "DMBE2", "DMBE3", "DMB21", "DMB22", "DMB23", "DMB31", "DMB32", "DMB33", "BDIF3", "XRAGL", "UZAWE", "XSTOV", "MWST2", "MWST3", "SKNT2", "SKNT3", "XREF1", "XREF2", "XARCH", "PSWSL", "PSWBT", "LZBKZ", "LANDL", "IMKEY", "VBEL2", "VPOS2", "POSN2", "ETEN2", "FISTL", "GEBER", "DABRZ", "XNEGP", "KOSTL", "RFZEI", "KKBER", "EMPFB", "PRCTR", "XREF3", "QSSKZ", "ZINKZ", "DTWS1", "DTWS2", "DTWS3", "DTWS4", "XPYPR", "KIDNO", "ABSBT", "CCBTC", "PYCUR", "PYAMT", "BUPLA", "SECCO", "CESSION_KZ", "PPDIFF", "PPDIF2", "PPDIF3", "KBLNR", "KBLPOS", "GRANT_NBR", "GMVKZ", "SRTYPE", "LOTKZ", "FKBER", "INTRENO", "PPRCT", "BUZID", "AUGGJ", "HKTID", "BUDGET_PD", "PAYS_PROV", "PAYS_TRAN", "MNDID", "KONTT", "KONTL", "UEBGDAT", "VNAME", "EGRUP", "BTYPE", "PROPMANO" FROM "BSAD" WHERE "MANDT"=:A0 AND "KUNNR" IN (:A1) AND "BUKRS"=:A2 AND "BUDAT"<=:A3 AND "HKONT" LIKE :A4 AND ("UMSKZ"=:A5 OR "UMSKZ"=:A6) AND "ZINKZ"=:A7


Если вы все-таки хотите пооптимизировать ваш конкретный запрос, то нужно найти его sql_id, child_number и на проде и на тесте

Code:
select sql_id,child_number,sql_text from v$sql where upper(sql_text) like '%SELECT DISTINCT "MANDT", "BUKRS", "KUNNR", "UMSKS""%'


а затем вытащить реальные планы выполнения запросом:
Code:
select * from table(dbms_xplan.display_cursor(ваш sql_id', ваш child_number));


тут уже можно будет и посравнивать


Посравнивали уже, читайте раньше.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oracle 12c 12.2 -> high cpu usage
СообщениеДобавлено: Пт, май 11 2018, 10:20 
Менеджер
Менеджер

Зарегистрирован:
Пн, фев 11 2008, 12:38
Сообщения: 615
Egal написал:
SergoB написал(а):
Попробуйте для начала с тем же ядром, что бы был прям SqlID одинаковый, тогда легче Oracle на баг указывать, если это баг с их стороны.

Сейчас не реально.

Селект в обеих системах один и тот же:
Code:
  SELECT TLINE TABSEQNR FROM HRP1002 AS P
    INNER JOIN HRT1002 AS T ON P~TABNR = T~TABNR
  INTO CORRESPONDING FIELDS OF TABLE lt_hrline
    WHERE OTYPE = 'C' AND BEGDA <= i_date AND ENDDA >= i_date AND objid = i_STELL
  ORDER BY TABSEQNR.


Постройте еще одну копию, если тут не реально, и всё протестируйте в ней.
Пока у вас SqlID отличается, это не одно и тоже на стороне оптимайзера.
Добейтесь как минимум одинакового SQLID.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oracle 12c 12.2 -> high cpu usage
СообщениеДобавлено: Пт, май 11 2018, 11:33 
Специалист
Специалист

Зарегистрирован:
Ср, янв 16 2013, 05:04
Сообщения: 167
SergoB написал(а):
Посравнивали уже, читайте раньше.

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

а вообще план вот так рабочий должен выглядеть:

Code:
SQL_ID  bb2u9fqah01q3, child number 0
-------------------------------------
SELECT "MATNR", "WERKS", "DBT_ASRT", "MATNR_PARENT", "MATNR_LEGACY",
"RESWK", "DISPR" FROM "MARC" WHERE "MANDT"=:A0 AND "DBT_ASRT" IN (:A1
,:A2 ,:A3 )

Plan hash value: 454562839

----------------------------------------------------------------------------------------
| Id  | Operation                   | Name     | Rows  | Bytes | Cost (%CPU)| Time     |
----------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |          |       |       | 68892 (100)|          |
|*  1 |  TABLE ACCESS BY INDEX ROWID| MARC     |    15M|   667M| 68891  (10)| 00:01:09 |
|*  2 |   INDEX RANGE SCAN          | MARC~VBM |    21M|       |  8166   (4)| 00:00:09 |
----------------------------------------------------------------------------------------

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

   1 - filter((NVL("DBT_ASRT",' ')=:A1 OR NVL("DBT_ASRT",' ')=:A2 OR
              NVL("DBT_ASRT",' ')=:A3))
   2 - access("MANDT"=:A0)


с конкретным временем работы на каждом шаге.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oracle 12c 12.2 -> high cpu usage
СообщениеДобавлено: Пт, май 11 2018, 12:24 
Менеджер
Менеджер

Зарегистрирован:
Пн, фев 11 2008, 12:38
Сообщения: 615
sap2me написал(а):
SergoB написал(а):
Посравнивали уже, читайте раньше.

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

а вообще план вот так рабочий должен выглядеть:

Code:
SQL_ID  bb2u9fqah01q3, child number 0
-------------------------------------
SELECT "MATNR", "WERKS", "DBT_ASRT", "MATNR_PARENT", "MATNR_LEGACY",
"RESWK", "DISPR" FROM "MARC" WHERE "MANDT"=:A0 AND "DBT_ASRT" IN (:A1
,:A2 ,:A3 )

Plan hash value: 454562839

----------------------------------------------------------------------------------------
| Id  | Operation                   | Name     | Rows  | Bytes | Cost (%CPU)| Time     |
----------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |          |       |       | 68892 (100)|          |
|*  1 |  TABLE ACCESS BY INDEX ROWID| MARC     |    15M|   667M| 68891  (10)| 00:01:09 |
|*  2 |   INDEX RANGE SCAN          | MARC~VBM |    21M|       |  8166   (4)| 00:00:09 |
----------------------------------------------------------------------------------------

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

   1 - filter((NVL("DBT_ASRT",' ')=:A1 OR NVL("DBT_ASRT",' ')=:A2 OR
              NVL("DBT_ASRT",' ')=:A3))
   2 - access("MANDT"=:A0)


с конкретным временем работы на каждом шаге.



Читать совсем лень да? Не одинаковые там планы.

P.S. " разница может быть только за счет скорости работы дисковой системы" , так Egal говорит, что на этой же системе работало быстро до апгрейда.
Диски замедлились от апгрейда?

P.P.S. По поводу плана со временем, что предоставили то и смотрим как говорится :) В Explain можно просто нажать - вывести как TEXT.
Это Egal на заметку.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oracle 12c 12.2 -> high cpu usage
СообщениеДобавлено: Пн, май 14 2018, 03:06 
Специалист
Специалист

Зарегистрирован:
Ср, янв 16 2013, 05:04
Сообщения: 167
SergoB написал(а):
Не одинаковые там планы.

в чем по твоему их принципиальное отличие? может я не заметил чего-то.

Цитата:
" разница может быть только за счет скорости работы дисковой системы" , так Egal говорит, что на этой же системе работало быстро до апгрейда.

в моей фразе которая процитирована речь идет о планах на разных системах. и скорости выполнения на них же.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу Пред.  1, 2, 3

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB