[oracle_br] Fixar SQL na Shared Pool - DBMS_SHARED_POOL

2008-11-10 Por tôpico rei_do_delphi
Bom dia a todos!

Estava passando gerando um relatório semanal do awr em um cliente 
que atendo semanalmente e me deparei com dois problemas: 

1º evento Log File Parallel Write muito alto == que eu tenho 
ciência que só irei resolver se distribuir os redo log files em 
discos com menos concorrência ou se possível em discos somente para 
esse fim( que acaba não sendo nossa realidade).

2º Sql´s com execuções altíssimas ( coluna executions), onde seria 
interessantes fixar estas sql´s na shared pool.

Estava lendo o metalink
Subject:  Using the Oracle DBMS_SHARED_POOL Package 
  Doc ID:  Note:61760.1 Type:  BULLETIN 
  Last Revision Date:  03-JUL-2008 Status:  PUBLISHED 


e ví que isso é possível pela package DBMS_SHARED_POOL. 
O que gostaria de saber de vocês é:
1º alguém já utilizou essa package?
2º Qual seria um nível bom ( em números) para fixar as sql´s na 
shared pool? Os sql´s com maior número de execuções na sessão SQL 
ordered by Executions do AWR ficam entre 305,380 e 71,440,096 ( 
isso mesmo, 71 milhões). Mesmo algumas delas sql´s leves, acredito 
que seria interessante fixa-las, correto? 

S.O: Windows 2003 Standard 32 Bits
Versão BD: 10.2.0.4 ( sem patch de CPU)
SGA
NAME  BYTES RES
 -- ---
Fixed SGA Size  1302296 No
Redo Buffers   15474688 No
Buffer Cache Size1333788672 Yes
Shared Pool Size  771751936 Yes
Large Pool Size   461373440 Yes
Java Pool Size  8388608 Yes
Streams Pool Size  58720256 Yes
Granule Size8388608 No
Maximum SGA Size 2650800128 No
Startup overhead in Shared Pool92274688 No
Free SGA Memory Available 0

SQL show parameter sga_max_size

NAME 
TYPE VALUE
 
 --
sga_max_size big 
integer  2528M
SQL show parameter sga_target

NAME 
TYPE VALUE
 
 --
sga_target   big 
integer  2528M
SQL 


parâmetros:
   cursor_sharing   SIMILAR
   cursor_space_for_timeFALSE
   open_cursors 800
   session_cached_cursors   20

Como a aplicação é desenvolvida dentro da empresa, é muito raro 
encontrar SQL´s sem Bind Variables, sendo assim, o cursor_sharing 
esta correto?

Obrigado a todos.



Re: [oracle_br] Fixar SQL na Shared Pool - DBMS_SHARED_POOL

2008-11-10 Por tôpico Ricardo Portilho Proni
Sim, está correto quanto ao LOG FILE... O gargalo é I/O nos Logs.

Se este SQL está com alto número de execuçòes, ele já está guardado na
Library. Vc não precisa fazer nada, o Oracle já fez.

Se vc usa sempre Bind Variables, O CURSOR_SHARING deve ser o padrão,
EXACT.


Ricardo Portilho Proni
Coordenador de Bancos de Dados - Solvo S/A
- Oracle Database 10g Administrator Certified Professional (OCP)
- Microsoft Certified Professional (MCP)
- Microsoft Certified Technologt Specialist: SQL Server 2005 (MCTS)

http://portilho.profissionaloracle.com.br




On Mon, 2008-11-10 at 13:19 +, rei_do_delphi wrote:
 Bom dia a todos!
 
 Estava passando gerando um relatório semanal do awr em um cliente 
 que atendo semanalmente e me deparei com dois problemas: 
 
 1º evento Log File Parallel Write muito alto == que eu tenho 
 ciência que só irei resolver se distribuir os redo log files em 
 discos com menos concorrência ou se possível em discos somente para 
 esse fim( que acaba não sendo nossa realidade).
 
 2º Sql´s com execuções altíssimas ( coluna executions), onde seria 
 interessantes fixar estas sql´s na shared pool.
 
 Estava lendo o metalink
 Subject: Using the Oracle DBMS_SHARED_POOL Package 
 Doc ID: Note:61760.1 Type: BULLETIN 
 Last Revision Date: 03-JUL-2008 Status: PUBLISHED 
 
 e ví que isso é possível pela package DBMS_SHARED_POOL. 
 O que gostaria de saber de vocês é:
 1º alguém já utilizou essa package?
 2º Qual seria um nível bom ( em números) para fixar as sql´s na 
 shared pool? Os sql´s com maior número de execuções na sessão SQL 
 ordered by Executions do AWR ficam entre 305,380 e 71,440,096 ( 
 isso mesmo, 71 milhões). Mesmo algumas delas sql´s leves, acredito 
 que seria interessante fixa-las, correto? 
 
 S.O: Windows 2003 Standard 32 Bits
 Versão BD: 10.2.0.4 ( sem patch de CPU)
 SGA
 NAME BYTES RES
  -- ---
 Fixed SGA Size 1302296 No
 Redo Buffers 15474688 No
 Buffer Cache Size 1333788672 Yes
 Shared Pool Size 771751936 Yes
 Large Pool Size 461373440 Yes
 Java Pool Size 8388608 Yes
 Streams Pool Size 58720256 Yes
 Granule Size 8388608 No
 Maximum SGA Size 2650800128 No
 Startup overhead in Shared Pool 92274688 No
 Free SGA Memory Available 0
 
 SQL show parameter sga_max_size
 
 NAME 
 TYPE VALUE
  
 --
 sga_max_size big 
 integer 2528M
 SQL show parameter sga_target
 
 NAME 
 TYPE VALUE
  
 --
 sga_target big 
 integer 2528M
 SQL 
 
 parâmetros:
 cursor_sharing SIMILAR
 cursor_space_for_time FALSE
 open_cursors 800
 session_cached_cursors 20
 
 Como a aplicação é desenvolvida dentro da empresa, é muito raro 
 encontrar SQL´s sem Bind Variables, sendo assim, o cursor_sharing 
 esta correto?
 
 Obrigado a todos.
 
 
 
 
 
  


[As partes desta mensagem que não continham texto foram removidas]



Res: [oracle_br] Fixar SQL na Shared Pool - DBMS_SHARED_POOL

2008-11-10 Por tôpico Wilson Teixeira
Nâo vejo necessidade de pinar estes comandos. Acredito que o melhor seria 
identificar onde estes comandos estão não aplicação e verificar a possiblidade 
de reduzir a quantidade de execução dos mesmos, ou reduzir a quantidade de 
blocos lidos.




De: rei_do_delphi [EMAIL PROTECTED]
Para: oracle_br@yahoogrupos.com.br
Enviadas: Segunda-feira, 10 de Novembro de 2008 10:19:42
Assunto: [oracle_br] Fixar SQL na Shared Pool - DBMS_SHARED_POOL


Bom dia a todos!

Estava passando gerando um relatório semanal do awr em um cliente 
que atendo semanalmente e me deparei com dois problemas: 

1º evento Log File Parallel Write muito alto == que eu tenho 
ciência que só irei resolver se distribuir os redo log files em 
discos com menos concorrência ou se possível em discos somente para 
esse fim( que acaba não sendo nossa realidade).

2º Sql´s com execuções altíssimas ( coluna executions), onde seria 
interessantes fixar estas sql´s na shared pool.

Estava lendo o metalink
Subject:  Using the Oracle DBMS_SHARED_ POOL Package 
Doc ID:  Note:61760.1 Type:  BULLETIN 
Last Revision Date:  03-JUL-2008 Status:  PUBLISHED 

e ví que isso é possível pela package DBMS_SHARED_ POOL. 
O que gostaria de saber de vocês é:
1º alguém já utilizou essa package?
2º Qual seria um nível bom ( em números) para fixar as sql´s na 
shared pool? Os sql´s com maior número de execuções na sessão SQL 
ordered by Executions do AWR ficam entre 305,380 e 71,440,096 ( 
isso mesmo, 71 milhões). Mesmo algumas delas sql´s leves, acredito 
que seria interessante fixa-las, correto? 

S.O: Windows 2003 Standard 32 Bits
Versão BD: 10.2.0.4 ( sem patch de CPU)
SGA
NAME  BYTES RES
 - - -- -- ---
Fixed SGA Size  1302296 No
Redo Buffers   15474688 No
Buffer Cache Size1333788672 Yes
Shared Pool Size  771751936 Yes
Large Pool Size   461373440 Yes
Java Pool Size  8388608 Yes
Streams Pool Size  58720256 Yes
Granule Size8388608 No
Maximum SGA Size 2650800128 No
Startup overhead in Shared Pool92274688 No
Free SGA Memory Available 0

SQL show parameter sga_max_size

NAME 
TYPE VALUE
 - - --  - - --
 - -
sga_max_size big 
integer  2528M
SQL show parameter sga_target

NAME 
TYPE VALUE
 - - --  - - --
 - -
sga_target   big 
integer  2528M
SQL 

parâmetros:
cursor_sharing   SIMILAR
cursor_space_ for_timeFALSE
open_cursors 800
session_cached_ cursors   20

Como a aplicação é desenvolvida dentro da empresa, é muito raro 
encontrar SQL´s sem Bind Variables, sendo assim, o cursor_sharing 
esta correto?

Obrigado a todos.

 


  Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua 
cara @ymail.com ou @rocketmail.com.
http://br.new.mail.yahoo.com/addresses

[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Fixar SQL na Shared Pool - DBMS_SHARED_POOL

2008-11-10 Por tôpico Mosan Santos
Amigos;
 
  Concordo com o Ricardo, 
 
  Seu SQL estará sempre na shared, porém ainda a mais um  recurso de utilizar a 
Keep.  Lave um teste!
 
Abraços

Mosán Santos 
__
OCP DBA 9i 
OCA DBA 10g 
DBA SQL Expert 10g 
CCNA 
JNCIA -ER 
FCP Fundamental / Master
OCM ...LOAD
__


--- Em seg, 10/11/08, Ricardo Portilho Proni [EMAIL PROTECTED] escreveu:

De: Ricardo Portilho Proni [EMAIL PROTECTED]
Assunto: Re: [oracle_br] Fixar SQL na Shared Pool - DBMS_SHARED_POOL
Para: oracle_br@yahoogrupos.com.br
Data: Segunda-feira, 10 de Novembro de 2008, 11:30






Sim, está correto quanto ao LOG FILE... O gargalo é I/O nos Logs.

Se este SQL está com alto número de execuçòes, ele já está guardado na
Library. Vc não precisa fazer nada, o Oracle já fez.

Se vc usa sempre Bind Variables, O CURSOR_SHARING deve ser o padrão,
EXACT.

Ricardo Portilho Proni
Coordenador de Bancos de Dados - Solvo S/A
- Oracle Database 10g Administrator Certified Professional (OCP)
- Microsoft Certified Professional (MCP)
- Microsoft Certified Technologt Specialist: SQL Server 2005 (MCTS)

http://portilho. profissionalorac le.com.br

On Mon, 2008-11-10 at 13:19 +, rei_do_delphi wrote:
 Bom dia a todos!
 
 Estava passando gerando um relatório semanal do awr em um cliente 
 que atendo semanalmente e me deparei com dois problemas: 
 
 1º evento Log File Parallel Write muito alto == que eu tenho 
 ciência que só irei resolver se distribuir os redo log files em 
 discos com menos concorrência ou se possível em discos somente para 
 esse fim( que acaba não sendo nossa realidade).
 
 2º Sql´s com execuções altíssimas ( coluna executions), onde seria 
 interessantes fixar estas sql´s na shared pool.
 
 Estava lendo o metalink
 Subject: Using the Oracle DBMS_SHARED_ POOL Package 
 Doc ID: Note:61760.1 Type: BULLETIN 
 Last Revision Date: 03-JUL-2008 Status: PUBLISHED 
 
 e ví que isso é possível pela package DBMS_SHARED_ POOL. 
 O que gostaria de saber de vocês é:
 1º alguém já utilizou essa package?
 2º Qual seria um nível bom ( em números) para fixar as sql´s na 
 shared pool? Os sql´s com maior número de execuções na sessão SQL 
 ordered by Executions do AWR ficam entre 305,380 e 71,440,096 ( 
 isso mesmo, 71 milhões). Mesmo algumas delas sql´s leves, acredito 
 que seria interessante fixa-las, correto? 
 
 S.O: Windows 2003 Standard 32 Bits
 Versão BD: 10.2.0.4 ( sem patch de CPU)
 SGA
 NAME BYTES RES
  - - -- -- ---
 Fixed SGA Size 1302296 No
 Redo Buffers 15474688 No
 Buffer Cache Size 1333788672 Yes
 Shared Pool Size 771751936 Yes
 Large Pool Size 461373440 Yes
 Java Pool Size 8388608 Yes
 Streams Pool Size 58720256 Yes
 Granule Size 8388608 No
 Maximum SGA Size 2650800128 No
 Startup overhead in Shared Pool 92274688 No
 Free SGA Memory Available 0
 
 SQL show parameter sga_max_size
 
 NAME 
 TYPE VALUE
  - - --  - - --
  - -
 sga_max_size big 
 integer 2528M
 SQL show parameter sga_target
 
 NAME 
 TYPE VALUE
  - - --  - - --
  - -
 sga_target big 
 integer 2528M
 SQL 
 
 parâmetros:
 cursor_sharing SIMILAR
 cursor_space_ for_time FALSE
 open_cursors 800
 session_cached_ cursors 20
 
 Como a aplicação é desenvolvida dentro da empresa, é muito raro 
 encontrar SQL´s sem Bind Variables, sendo assim, o cursor_sharing 
 esta correto?
 
 Obrigado a todos.
 
 
 
 
 
 

[As partes desta mensagem que não continham texto foram removidas]

 














  Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua 
cara @ymail.com ou @rocketmail.com.
http://br.new.mail.yahoo.com/addresses

[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Fixar SQL na Shared Pool - DBMS_SHARED_POOL

2008-11-10 Por tôpico Carlos Gorges
Boa tarde,

2008/11/10 rei_do_delphi [EMAIL PROTECTED]:
 Bom dia a todos!

 Estava passando gerando um relatório semanal do awr em um cliente
 que atendo semanalmente e me deparei com dois problemas:

 1º evento Log File Parallel Write muito alto == que eu tenho
 ciência que só irei resolver se distribuir os redo log files em
 discos com menos concorrência ou se possível em discos somente para
 esse fim( que acaba não sendo nossa realidade).

Esse evento é causado pela gravação paralela dos membros do grupo
corrente do redolog.
Separe os membros de cada grupo de filesystem e tire-os de discos com contenção.

 2º Sql´s com execuções altíssimas ( coluna executions), onde seria
 interessantes fixar estas sql´s na shared pool.

Leia sobre CURSOR_SHARING.

Atenciosamente,
-- 
Carlos E. Gorges [EMAIL PROTECTED]