<?xml version="1.0" encoding="ISO-8859-1"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Forum du club des développeurs et IT Pro - Blogs - Oracle_Man</title>
		<link>https://www.developpez.net/forums/blogs/681402-oracle_man/</link>
		<description>Developpez.com, le Club des Développeurs et IT Pro</description>
		<language>fr</language>
		<lastBuildDate>Fri, 25 Sep 2026 21:28:04 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>15</ttl>
		<image>
			<url>https://forum.developpez.be/images/misc/rss.jpg</url>
			<title>Forum du club des développeurs et IT Pro - Blogs - Oracle_Man</title>
			<link>https://www.developpez.net/forums/blogs/681402-oracle_man/</link>
		</image>
		<item>
			<title>Bloc notes Oracle</title>
			<link>https://www.developpez.net/forums/blogs/681402-oracle_man/b9207/bloc-notes-oracle/</link>
			<pubDate>Fri, 17 Apr 2020 08:40:16 GMT</pubDate>
			<description>*DBMS_STATS* 
 
On me demande...</description>
			<content:encoded><![CDATA[<blockquote class="blogcontent restore"><b>DBMS_STATS</b><br />
<br />
On me demande toujours comment calculer les statistiques sur une table. Voilà :<br />
<br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code sql :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:144px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">begin</span>
DBMS_STATS.GATHER_TABLE_STATS <span class="br0">&#40;</span>
              ownname =&gt; <span style="color: #FF0000;">'xxx'</span>,
          tabname =&gt; <span style="color: #FF0000;">'ma_table'</span>,
          CASCADE =&gt; TRUE,
          estimate_percent =&gt; dbms_stats.auto_sample_size,
          method_opt =&gt; <span style="color: #FF0000;">'for all indexed columns size auto'</span>
          <span class="br0">&#41;</span>;
<span style="color: #0000ff;">end</span>;</pre></td></tr></table></pre>
</div><br />
Le problème est que cela marche bien dans 95% des cas. J'ai réussi à me faire coincer par un projet où il n'avait qu'une seule colonne indexée (par un seul index donc)(et même pas une PK). Il faut alors lancer plus de statistiques sur toutes les colonnes, ce que l'on fait rarement car le temps de calcul peut être long. Mais bon, pas d'autre solution dans notre cas : <br />
<br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code sql :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:144px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">begin</span>
DBMS_STATS.GATHER_TABLE_STATS <span class="br0">&#40;</span>
              ownname =&gt; <span style="color: #FF0000;">'xxx'</span>,
          tabname =&gt; <span style="color: #FF0000;">'ma_table'</span>,
          CASCADE =&gt; TRUE,
          estimate_percent =&gt; dbms_stats.auto_sample_size,
          method_opt =&gt; <span style="color: #FF0000;">'for all columns size auto'</span>
          <span class="br0">&#41;</span>;
<span style="color: #0000ff;">end</span>;</pre></td></tr></table></pre>
</div><br />
La vie est mal faite parfois.<br />
<br />
<b>Listener Oracle</b><br />
<br />
Démarrer et stopper le listener Oracle :<br />
<br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code  :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:72px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br /></div></td><td valign="top"><pre style="margin: 0">lsnrctl start

lsnrctl stop</pre></td></tr></table></pre>
</div>C'est une manipulation basique mais j'oublie tout le temps la syntaxe &quot;lsnrctl&quot;<br />
<br />
<b>Tracer les sessions Oracle</b><br />
<br />
Un petit problème survient quand vous souhaitez tracer le SQL (sous Oracle) sans arrêter la base de données d'une application. Facile, vous êtes capables maintenant avec les nouvelles versions d'Oracle de faire un trigger de type after logon. <br />
<br />
Un petit trigger système pour tracer toutes les connexions :<br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code sql :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:168px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #0000ff;">create</span> <span style="color: #0000ff;">or</span> <span style="color: #0000ff;">replace</span> <span style="color: #0000ff;">trigger</span> trg_enable_trace_at_logon
after logon
<span style="color: #0000ff;">on</span> <span style="color: #0000ff;">database</span>
<span style="color: #0000ff;">begin</span>
   execute immediate <span style="color: #FF0000;">'alter session set sql_trace=TRUE'</span>;
exception
  <span style="color: #0000ff;">when</span> others <span style="color: #0000ff;">then</span>
  <span style="color: #0000ff;">NULL</span>;
<span style="color: #0000ff;">end</span> trg_enable_trace_at_logon;
/</pre></td></tr></table></pre>
</div><br />
Il suffit d'adapter selon les besoins (si vous ne souhaitez tracer qu'un user, un serveur d'application, ...)</blockquote>

]]></content:encoded>
			<dc:creator>Oracle_Man</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/blogs/681402-oracle_man/b9207/bloc-notes-oracle/</guid>
		</item>
	</channel>
</rss>
