powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Cursor pin:s
9 сообщений из 9, страница 1 из 1
Cursor pin:s
    #39610737
feagor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В определенный период времени вся база начинает висеть в этих ожиданиях.
Все ожидания судя по ASH приходятся на один запрос:
Картинки




Запрос на вид крайне простой, проблем с парсингом быть не должно
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
function fId(sCode in varchar2) return integer  as
    nRet C_USR.ID%TYPE;
  begin
    select ID into nRet from C_USR where CODE = sCode;
    return nRet;
  exception
    when NO_DATA_FOUND then
      return null;
  end;


С планом у запроса вроде тоже не должно быть проблем
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
SQL_ID  5x3hrqrr4pnvx, child number 0
-------------------------------------
SELECT ID FROM C_USR WHERE CODE = :B1
 
Plan hash value: 163455779
 
----------------------------------------------------
| Id  | Operation                   | Name         |
----------------------------------------------------
|   0 | SELECT STATEMENT            |              |
|   1 |  TABLE ACCESS BY INDEX ROWID| C_USR        |
|*  2 |   INDEX UNIQUE SCAN         | AK_C_USR_ISP |
----------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - access("CODE"=:B1)
 
Note
-----
   - rule based optimizer used (consider using cbo)
 

В чем может быть причина?
...
Рейтинг: 0 / 0
Cursor pin:s
    #39610738
feagor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще есть подозрение, что возможно проблема в том, что запрос постоянно вылетает из shared_poola
...
Рейтинг: 0 / 0
Cursor pin:s
    #39610755
Амаразм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feagor,

Какая это версия?
И почему RBO включен?

Причина может быть в большом количестве hard parse.
Бинды используете?
Параметр cursor_sharing ?
...
Рейтинг: 0 / 0
Cursor pin:s
    #39610762
feagor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Амаразм,

Какая это версия?
Код: plaintext
1.
2.
3.
4.
5.
Oracle Database 11g Enterprise Edition 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 Solaris: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
И почему RBO включен?
Код: plaintext
Так исторически сложилось
Параметр cursor_sharing ?
Код: plaintext
cursor_sharing= EXACT

Причина может быть в большом количестве hard parse.
Бинды используете?
Стараемся использовать.

Код: plsql
1.
2.
3.
4.
5.
select regexp_replace(sql_text,'(\d+)|(''.*?'')','*') str ,count(1)
from v$sqlarea t 
group by regexp_replace(sql_text,'(\d+)|(''.*?'')','*')
having count(1)>10
order by count(1) desc

запросик даёт примерно следующее


не считаю результат этого запроса чем-то, что могло бы привести к этому
...
Рейтинг: 0 / 0
Cursor pin:s
    #39610773
Амаразм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feagor, ваш запрос действительно ни о чём не говорит.

Лучше вот так:

SELECT sql_id,
COUNT(*)
FROM v$sql
GROUP BY sql_id
HAVING COUNT(*) > 100
ORDER BY COUNT(*) DESC
...
Рейтинг: 0 / 0
Cursor pin:s
    #39610794
feagor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Амаразм,

...
Рейтинг: 0 / 0
Cursor pin:s
    #39610796
feagor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
feagor,

Код: plsql
1.
2.
3.
SELECT /*+ OPT_PARAM('_fix_control' '9088510:0') NO_XML_QUERY_REWRITE cursor_sharing_exact */ count(*)  FROM SYS.DUAL WHERE 1=1

SELECT /*+ OPT_PARAM('_fix_control' '9088510:0') NO_XML_QUERY_REWRITE cursor_sharing_exact */ count(*)  FROM SYS.DUAL WHERE 1 = 1
...
Рейтинг: 0 / 0
Cursor pin:s
    #39610800
Щ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Щ
Гость
Тут посмотри
Bug 20476175 - High VERSION_COUNT (in V$SQLAREA) for query with OPT_PARAM('_fix_control') hint (Doc ID 20476175.8)
...
Рейтинг: 0 / 0
Cursor pin:s
    #39610807
feagor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Щ,

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


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