<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-27589819</id><updated>2012-01-15T11:52:22.778+01:00</updated><category term='create user'/><category term='Architettura'/><category term='Performance'/><category term='Export'/><category term='Opinione'/><category term='lock'/><category term='CBO'/><category term='gv$session'/><category term='Statistics'/><category term='perl'/><category term='PL/SQL'/><category term='wait'/><category term='Import'/><category term='event'/><category term='data dictionary'/><category term='Developer'/><category term='bash'/><category term='oracle'/><category term='Administration'/><category term='restore'/><category term='10053'/><category term='ORA-'/><category term='Corso'/><category term='workload'/><category term='Time Zone'/><category term='Enviroment'/><category term='Function'/><category term='unix'/><category term='Concept'/><category term='SQL Developer'/><category term='windows'/><category term='dos'/><category term='AWR'/><category term='netezza'/><category term='Metricx'/><category term='Monitoring'/><category term='Transaction'/><category term='Hierarchical'/><category term='backup'/><title type='text'>OraSal</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>39</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-27589819.post-7839637475614836412</id><published>2011-09-23T11:04:00.003+02:00</published><updated>2011-09-23T11:06:15.240+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='netezza'/><category scheme='http://www.blogger.com/atom/ns#' term='data dictionary'/><title type='text'>Data Dictionary on Netezza</title><content type='html'>The data dictionary view on netezza are name as _V_*&lt;br /&gt;&lt;br /&gt;For example:&lt;br /&gt;&lt;br /&gt;_V_GROUP&lt;br /&gt;_V_TABLE&lt;br /&gt;_V_RELATION_COLUMN&lt;br /&gt;_V_GROUPUSERS&lt;br /&gt;_V_VIEW&lt;br /&gt;&lt;br /&gt;To describe a table or view, use \d &lt;table_name&gt;&lt;/table_name&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;SYSTEM(ADMIN)-&amp;gt; \d _V_GROUP&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; View "_V_GROUP"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Attribute&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Modifier | Default Value&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;---------------------+------------------------+----------+---------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;OBJID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | OID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;GROUPNAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;OWNER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;CREATEDATE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | ABSTIME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;ROWLIMIT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | INTEGER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;SESSIONTIMEOUT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | INTEGER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;QUERYTIMEOUT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | INTEGER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;DEF_PRIORITY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;MAX_PRIORITY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;OBJDELIM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | BOOLEAN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;GRORSGPERCENT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | INTEGER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;RSGMAXPERCENT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | INTEGER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;CROSS_JOINS_ALLOWED | CHARACTER VARYING(255) |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;COLLECTHISTORY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | INTEGER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;ACCESSTIME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | INTEGER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;CONCURRENTSESS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | INTEGER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;JOBMAX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | INTEGER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sources&lt;br /&gt;http://wirewoods.wikidot.com/netezza-metadata-queries&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-7839637475614836412?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/7839637475614836412/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=7839637475614836412&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/7839637475614836412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/7839637475614836412'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/09/data-dictionary-on-netezza.html' title='Data Dictionary on Netezza'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-2337126220430634511</id><published>2011-09-08T09:20:00.001+02:00</published><updated>2011-09-08T09:21:19.531+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AWR'/><title type='text'>AWR scripts</title><content type='html'>Questi script sono gli awr di un database 10.2:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/sbrdbms/app/oracle/product/10.2.0/db_rac/rdbms/admin/awrddinp.sql&lt;br /&gt;/sbrdbms/app/oracle/product/10.2.0/db_rac/rdbms/admin/awrddrpi.sql&lt;br /&gt;/sbrdbms/app/oracle/product/10.2.0/db_rac/rdbms/admin/awrddrpt.sql&lt;br /&gt;/sbrdbms/app/oracle/product/10.2.0/db_rac/rdbms/admin/awrextr.sql&lt;br /&gt;/sbrdbms/app/oracle/product/10.2.0/db_rac/rdbms/admin/awrinfo.sql&lt;br /&gt;/sbrdbms/app/oracle/product/10.2.0/db_rac/rdbms/admin/awrinpnm.sql&lt;br /&gt;/sbrdbms/app/oracle/product/10.2.0/db_rac/rdbms/admin/awrinput.sql&lt;br /&gt;/sbrdbms/app/oracle/product/10.2.0/db_rac/rdbms/admin/awrload.sql&lt;br /&gt;/sbrdbms/app/oracle/product/10.2.0/db_rac/rdbms/admin/awrrpt.sql&lt;br /&gt;/sbrdbms/app/oracle/product/10.2.0/db_rac/rdbms/admin/awrrpti.sql&lt;br /&gt;/sbrdbms/app/oracle/product/10.2.0/db_rac/rdbms/admin/awrsqrpi.sql&lt;br /&gt;/sbrdbms/app/oracle/product/10.2.0/db_rac/rdbms/admin/awrsqrpt.sql&lt;br /&gt;/sbrdbms/app/oracle/product/10.2.0/db_rac/rdbms/admin/catawrtb.sql&lt;br /&gt;/sbrdbms/app/oracle/product/10.2.0/db_rac/rdbms/admin/catawrvw.sql&lt;br /&gt;/sbrdbms/app/oracle/product/10.2.0/db_rac/rdbms/admin/catnoawr.sql&lt;br /&gt;/sbrdbms/app/oracle/product/10.2.0/db_rac/rdbms/admin/dbmsawr.sql&lt;br /&gt;/sbrdbms/app/oracle/product/10.2.0/db_rac/rdbms/admin/prvtawr.plb &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-2337126220430634511?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/2337126220430634511/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=2337126220430634511&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/2337126220430634511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/2337126220430634511'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/09/awr-scripts.html' title='AWR scripts'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-6929243070948951444</id><published>2011-08-29T10:40:00.000+02:00</published><updated>2011-08-29T10:40:03.628+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ORA-'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Max extents reached</title><content type='html'>Un cliente mi ha segnalato questo errore:&lt;br /&gt;&lt;br /&gt;Salve, durante il giro DAC ho ricevuto questo errore oracle&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ORA-01631: max # extents () reached in table&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;La tabella è DACADMIP_2005.TAWWTRV_AUTORICARICHE.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cryer.co.uk/brian/oracle/ORA01631.htm"&gt;Questo link&lt;/a&gt;, suggerisce come fare:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;alter table &lt;table-name&gt;storage (maxextents 500);&lt;/table-name&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-6929243070948951444?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/6929243070948951444/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=6929243070948951444&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/6929243070948951444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/6929243070948951444'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/08/max-extents-reached.html' title='Max extents reached'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-4788212484593740824</id><published>2011-08-23T17:39:00.000+02:00</published><updated>2011-08-23T17:39:12.353+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Function'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='Enviroment'/><title type='text'>Unix profile: showlist</title><content type='html'>Al fine di personalizzare l'utente oracle, all'interno del "profile", definiamo la funzione showlist&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;typeset -fx showlist&lt;br /&gt;showlist(){&lt;br /&gt;ps -ef -o %a|grep -i tnslsnr |grep -v grep|awk '{print $2}'|sort&lt;br /&gt;}&lt;/div&gt;&lt;br /&gt;Questo è un esempio di output&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$&amp;gt; showlist&lt;br /&gt;listener_mydb01t&lt;br /&gt;listener_mydb02t&lt;br /&gt;listener_mydb03t&lt;/div&gt;&lt;br /&gt;Lo scopo di questa funzione è di mostrare tutti i listener che girano sulla macchina&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-4788212484593740824?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/4788212484593740824/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=4788212484593740824&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/4788212484593740824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/4788212484593740824'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/08/unix-profile-showlist.html' title='Unix profile: showlist'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-3308176389024264937</id><published>2011-08-23T14:02:00.013+02:00</published><updated>2011-08-23T17:35:55.443+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Function'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='Enviroment'/><title type='text'>Unix profile: setsid</title><content type='html'>Al fine di personalizzare l'utente oracle, all'interno del "profile", definiamo la funzione setsid&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;typeset -fx setsid&lt;br /&gt;setsid()&lt;br /&gt;{&lt;br /&gt;_sidName=$(echo $1 |sed -e "s/\(^.*\)\(.\)/\1/")&lt;br /&gt;_sidType=$(echo $1 |sed -e "s/\(^.*\)\(.\)/\2/")&lt;br /&gt;_sidUpperName=$(echo ${_sidName} |tr '[:lower:]' '[:upper:]')&lt;br /&gt;_sidLowerType=$(echo ${_sidType} |tr '[:upper:]' '[:lower:]')&lt;br /&gt;&lt;br /&gt;echo ${_sidUpperName}${_sidLowerType}&lt;br /&gt;}&lt;/div&gt;&lt;br /&gt;Questo è un esempio di output&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$&amp;gt; setsid VasMsrt&lt;br /&gt;VASMSRt&lt;/div&gt;&lt;br /&gt;Lo scopo di questa funzione è di rendere ORACLE_SID nel seguente formato:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ORACLE_SID ::= &amp;lt;logical_name&amp;gt;&amp;lt;type&amp;gt;&lt;/div&gt;&lt;br /&gt;dove&lt;br /&gt;&lt;br /&gt;&lt;spawn style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&amp;lt;logical_name&amp;gt; &lt;/spawn&gt;è una stringa che identifica l'applicazione&lt;br /&gt;&lt;spawn style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&amp;lt;type&amp;gt;&lt;/spawn&gt; può assumere 3 valori:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;ul&gt;&lt;li&gt;t -&amp;gt; test&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;d -&amp;gt; develop&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;p -&amp;gt; production&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-3308176389024264937?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/3308176389024264937/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=3308176389024264937&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/3308176389024264937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/3308176389024264937'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/08/unix-profile-functions.html' title='Unix profile: setsid'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-312365420322828595</id><published>2011-08-23T13:58:00.000+02:00</published><updated>2011-08-23T13:58:06.618+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='Enviroment'/><title type='text'>Unix profile: alias</title><content type='html'>Nel .profile dell'utente oracle, possiamo definire i segueni alias &lt;br /&gt;&lt;br /&gt;&lt;dev style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;alias&amp;nbsp; goh='cd $ORACLE_HOME'&lt;br /&gt;alias&amp;nbsp; gob='cd $ORACLE_BASE'&lt;br /&gt;alias&amp;nbsp; gol='cd $ORACLE_BASE/local'&lt;br /&gt;alias&amp;nbsp; goa='cd $ORACLE_BASE/admin'&lt;br /&gt;alias&amp;nbsp; gos='cd $ORACLE_BASE/admin/$ORACLE_SID'&lt;br /&gt;alias&amp;nbsp; gonet='cd $ORACLE_HOME/network/admin'&lt;br /&gt;alias&amp;nbsp; goinstinstall='cd $ORACLE_INSTALLER_DIR'&lt;br /&gt;alias&amp;nbsp; godb='cd /db${ORACLE_SID}/${ORACLE_SID}'&lt;br /&gt;alias&amp;nbsp; goark='cd /fsDbWorkArea/archiveLog${ORACLE_SID}'&lt;br /&gt;&lt;br /&gt;alias&amp;nbsp; isql='sqlplus "/as sysdba"'&lt;br /&gt;alias showfunc='grep \(\) ~oracle/.profile|sed s/\(\)//'&lt;br /&gt;alias&amp;nbsp; orapatch='$ORACLE_HOME/OPatch/opatch'&lt;/dev&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-312365420322828595?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/312365420322828595/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=312365420322828595&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/312365420322828595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/312365420322828595'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/08/unix-profile-alias.html' title='Unix profile: alias'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-6177475532561302685</id><published>2011-08-16T19:00:00.009+02:00</published><updated>2011-08-16T19:20:20.232+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AWR'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><title type='text'>AWR: %Total Call Time</title><content type='html'>Nella sezione "Top 5 Timed Events" la colonna "%Total Call Time" è &lt;a href="http://www.freelists.org/post/oracle-l/Total-Call-Time-in-AWR,4"&gt;calcolato &lt;/a&gt;come rapporto tra il tempo dell'evento d'attesa ed il "DB Time".&lt;br /&gt;&lt;br /&gt;Nell'esempio che segue, il DB Time speso in "database user-call" è 463909, mentre il tempo di attesa sull'evento "PX Deq Credit: send blkd" è 222393.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;%Total Call Time of PX Deq Credit: send blkd =&amp;gt; 222393/463909*100 = 47.9&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;Top 5 Timed Events&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Avg %Total&lt;br /&gt;~~~~~~~~~~~~~~~~~~&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wait&amp;nbsp;&amp;nbsp; Call&lt;br /&gt;Event&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Waits&amp;nbsp;&amp;nbsp;&amp;nbsp; Time (s)&amp;nbsp;&amp;nbsp; (ms)&amp;nbsp;&amp;nbsp; Time Wait Class&lt;br /&gt;------------------------------ ------------ ----------- ------ ------ ----------&lt;br /&gt;PX Deq Credit: send blkd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1,555,214&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="background-color: yellow; color: black;"&gt;222,393&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 143&amp;nbsp;&amp;nbsp; 47.9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Other&lt;br /&gt;db file scattered read&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1,878,085&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30,323&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 16&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.5&amp;nbsp;&amp;nbsp; User I/O&lt;br /&gt;db file sequential read&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3,073,012&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 17,900&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.9&amp;nbsp;&amp;nbsp; User I/O&lt;br /&gt;CPU time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 17,118&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.7&lt;br /&gt;db file parallel read&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 203,998&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6,165&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.3&amp;nbsp;&amp;nbsp; User I/O&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-&amp;gt; Total time in database user-calls (DB Time): &lt;span style="background-color: yellow; color: #444444;"&gt;463909&lt;/span&gt;&lt;span style="background-color: yellow; color: #444444;"&gt;.1&lt;/span&gt;s&lt;br /&gt;-&amp;gt; Statistics including the word "background" measure background process&lt;br /&gt;&amp;nbsp;&amp;nbsp; time, and so do not contribute to the DB time statistic&lt;br /&gt;-&amp;gt; Ordered by % or DB time desc, Statistic name&lt;br /&gt;&lt;br /&gt;Statistic Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Time (s) % of DB Time&lt;br /&gt;------------------------------------------ ------------------ ------------&lt;br /&gt;sql execute elapsed time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 462,631.7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 99.7&lt;br /&gt;DB CPU&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 17,117.8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.7&lt;br /&gt;parse time elapsed&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 410.4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .1&lt;br /&gt;sequence load elapsed time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 392.7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .1&lt;br /&gt;hard parse elapsed time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 220.0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .0&lt;br /&gt;PL/SQL execution elapsed time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .0&lt;br /&gt;connection management call elapsed time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .0&lt;br /&gt;PL/SQL compilation elapsed time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .0&lt;br /&gt;failed parse elapsed time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .0&lt;br /&gt;hard parse (sharing criteria) elapsed time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .0&lt;br /&gt;hard parse (bind mismatch) elapsed time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .0&lt;br /&gt;repeated bind elapsed time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .0&lt;br /&gt;DB time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 463,909.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; N/A&lt;br /&gt;background elapsed time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2,561.9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; N/A&lt;br /&gt;background cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 806.3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; N/A&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -------------------------------------------------------------&lt;/div&gt;&lt;br /&gt;Ho notato che esiste una piccola discrepanza tra il "DB Time" riportato al top del report AWR e quello riportato più sotto nello stesso output. Infatti&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Snap Id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Snap Time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sessions Curs/Sess&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --------- ------------------- -------- ---------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Begin Snap:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9671 10-Aug-11 00:00:24&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 151&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; End Snap:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9676 10-Aug-11 05:00:27&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 156&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; Elapsed:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 300.04 (mins)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; DB Time:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="background-color: lime; color: #444444;"&gt;7,731.82 (mins)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;mentre&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;-&amp;gt; Total time in database user-calls &lt;span style="background-color: lime; color: #444444;"&gt;(DB Time): 463909.1s&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;7731 minuti sono 463860 secondi (7731*60 ). La discrepanza è di 49 secondi. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-6177475532561302685?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/6177475532561302685/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=6177475532561302685&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/6177475532561302685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/6177475532561302685'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/08/awr-total-call-time.html' title='AWR: %Total Call Time'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-3030537191835439901</id><published>2011-08-13T20:24:00.000+02:00</published><updated>2011-08-13T20:24:29.707+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='netezza'/><category scheme='http://www.blogger.com/atom/ns#' term='restore'/><title type='text'>Netezza restore</title><content type='html'>Due diversi modi per effettuare un restore:&lt;br /&gt;&lt;br /&gt;NZ_UTILITY_DIR=/nz/support/contrib/bin&lt;br /&gt;BACKUP_DIR=/dwhtwf_fs/BackUpDir/Netezza/dwhtwf&lt;br /&gt;LOG_DIR=/dwhtwf_fs/LogDir/Netezza/dwhtwf/NTZ_DWHD.20110812&lt;br /&gt;&lt;br /&gt;setsid ${NZ_UTILITY_DIR}/nz_restore -dir ${BACKUP_DIR}/NTZ_DWDMP.20110812 -format binary -t `cat /export/home/nz/SALZANO/sources/NTZ_DWDMP.talble.list` -db NTZ_DWDMP_TRASH -threads 6 2&gt;&amp;1 &gt; {LOG_DIR}/NTZ_DWDMP.20110812.restore &amp;&lt;br /&gt;&lt;br /&gt;setsid ${NZ_UTILITY_DIR}/nz_restore -dir ${BACKUP_DIR}/NTZ_DWHD.20110812 -format binary -db NTZ_DWHD -threads 6 2&gt;&amp;1 &gt; ${LOG_DIR}/NTZ_DWHD.20110812.restore &amp;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-3030537191835439901?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/3030537191835439901/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=3030537191835439901&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/3030537191835439901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/3030537191835439901'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/08/netezza-restore.html' title='Netezza restore'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-8639235875583572827</id><published>2011-08-05T11:31:00.004+02:00</published><updated>2011-08-05T15:44:11.622+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Import'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Import gzip and pipe</title><content type='html'>Dopo aver fatto l'&lt;a href="http://orasal.blogspot.com/2011/08/export-gzip-and-pipe.html"&gt;export&lt;/a&gt;, si esegue l'import:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$for i in $(cat dwpr_test_01.list); do&lt;br /&gt;&amp;gt;nohup ./import_dwpr_test.sh $i 2&amp;gt;&amp;amp;1 &amp;gt; $i.nohup &amp;amp;&lt;br /&gt;&amp;gt;done&lt;/div&gt;&lt;br /&gt;$cat import_dwpr_test.sh&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;WORKINGDIR=/dwhtest01a/export.20110804&lt;br /&gt;NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1&lt;br /&gt;ORACLE_BASE=/u1/app/oracle&lt;br /&gt;ORACLE_SID=dwprt&lt;br /&gt;ORACLE_TERM=vt100&lt;br /&gt;ORA_NLS33=/u1/app/oracle/product/9.2.0/ocommon/nls/admin/data&lt;br /&gt;ORACLE_HOME=/u1/app/oracle/product/9.2.0&lt;br /&gt;ADMIN=system&lt;br /&gt;PASSWORD=password&lt;br /&gt;USERNAME=$1&lt;br /&gt;&lt;br /&gt;rm ${WORKINGDIR}/${USERNAME}.pipe&lt;br /&gt;mknod ${WORKINGDIR}/${USERNAME}.pipe p&lt;br /&gt;&lt;br /&gt;gunzip &amp;lt;&amp;nbsp; ${WORKINGDIR}/${USERNAME}.dmp.gz &amp;gt; ${WORKINGDIR}/${USERNAME}.pipe &amp;amp;&lt;br /&gt;&lt;br /&gt;imp $ADMIN/$PASSWORD FROMUSER=${USERNAME} TOUSER=NEW_${USERNAME} FILE=${WORKINGDIR}/${USERNAME}.pipe LOG=${WORKINGDIR}/${USERNAME}_dwprt_import.log&lt;br /&gt;&lt;br /&gt;rm ${WORKINGDIR}/${USERNAME}.pipe&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-8639235875583572827?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/8639235875583572827/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=8639235875583572827&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/8639235875583572827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/8639235875583572827'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/08/import-gzip-and-pipe.html' title='Import gzip and pipe'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-2564534376022091524</id><published>2011-08-04T19:04:00.003+02:00</published><updated>2011-08-05T11:37:33.330+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Export'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Export, gzip and pipe</title><content type='html'>&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$for i in $(cat dwpr_test_01.list); do&lt;br /&gt;&amp;gt;nohup ./export_dwpr_test.sh $i 2&amp;gt;&amp;amp;1 &amp;gt; $i.nohup &amp;amp;&lt;br /&gt;&amp;gt;done&lt;/div&gt;&lt;br /&gt;dove&lt;br /&gt;&lt;br /&gt;$cat export_dwpr_test.sh&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;WORKINGDIR=/dwhtest01a/export.20110804&lt;br /&gt;NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1&lt;br /&gt;ORACLE_BASE=/u1/app/oracle&lt;br /&gt;ORACLE_SID=dwprt&lt;br /&gt;ORACLE_TERM=vt100&lt;br /&gt;ORA_NLS33=/u1/app/oracle/product/9.2.0/ocommon/nls/admin/data&lt;br /&gt;ORACLE_HOME=/u1/app/oracle/product/9.2.0&lt;br /&gt;ADMIN=system&lt;br /&gt;PASSWORD=password&lt;br /&gt;USERNAME=$1&lt;br /&gt;&lt;br /&gt;rm ${WORKINGDIR}/${USERNAME}.pipe&lt;br /&gt;mknod ${WORKINGDIR}/${USERNAME}.pipe p&lt;br /&gt;&lt;br /&gt;gzip &amp;lt; ${WORKINGDIR}/${USERNAME}.pipe &amp;gt; ${WORKINGDIR}/${USERNAME}.dmp.gz &amp;amp;&lt;br /&gt;&lt;br /&gt;exp $ADMIN/$PASSWORD OWNER=${USERNAME} FILE=${WORKINGDIR}/${USERNAME}.pipe LOG=${WORKINGDIR}/${USERNAME}_dwprt_export.log&lt;br /&gt;&lt;br /&gt;rm ${WORKINGDIR}/${USERNAME}.pipe&lt;/div&gt;&lt;br /&gt;$cat dwpr_test_01.list&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;PR_AI_INTEG&lt;br /&gt;PR_AI_PRE&lt;br /&gt;PR_DM_PRE&lt;br /&gt;PR_EDW_COLL&lt;br /&gt;PR_EDW_PRE&lt;br /&gt;PR_LAY_PRE&lt;br /&gt;PR_SRVDIFF_COLL&lt;br /&gt;PR_SRVDIFF_PRE&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-2564534376022091524?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/2564534376022091524/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=2564534376022091524&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/2564534376022091524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/2564534376022091524'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/08/export-gzip-and-pipe.html' title='Export, gzip and pipe'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-319348373976287447</id><published>2011-08-02T19:13:00.003+02:00</published><updated>2011-08-02T19:16:13.097+02:00</updated><title type='text'></title><content type='html'>A seguito di un crash di entrambe le istanze di un RAC, ho aperto una Service Request su metalink. Più sotto c'è la risposta.&lt;br /&gt;&lt;br /&gt;Ecco le cose interessanti:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;"KSV master wait" event, indicates the process on the RDBMS side is waiting for a reply from a process on the ASM side.&lt;/li&gt;&lt;li&gt;"ASM file metadata operation" is a wait envet generated by a database remote process (in this case, the database ABC is the clinet)&lt;/li&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/SIGLOST"&gt;SIGLOST&lt;/a&gt;: SIG is a common prefix for signal names. LOST refers to a lost file lock.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;=========&lt;br /&gt;Support note&lt;br /&gt;=========&lt;br /&gt;According to the systemstate dump, from the instance, the majority of the background processes are found dead and last wait for service name: SYS$BACKGROUND , is for 'KSV master wait' . Event 'KSV master wait' indicates the process on the RDBMS side is waiting for a reply from a process on the ASM side.&lt;br /&gt;&lt;br /&gt;In both ASM instances, ORA-07445 is being dumped , right before notifying the death of the corresponding instance:&lt;br /&gt;&lt;br /&gt;Sun Jul 24 14:45:03 2011&lt;br /&gt;NOTE: ASM client ABCp1:ABCp died unexpectedly.&lt;br /&gt;&lt;br /&gt;According to the trace file, it was generated by a remote process waiting for 'ASM file metadata operation'. The call stack of the ORA-07445 is generic and per trace file, "Process received SIGLOST. Therefore the callstack does not point to the location of the problem." However, the callstack contains a hint, and that is the tcpip function, which could point to a problem at the network level.&lt;br /&gt;&lt;br /&gt;Given the data above, please check with your system administrator if there's any network issue that could have interrupted the communication between the database and the ASM instances, and let me know the results.&lt;br /&gt;&lt;br /&gt;======================&lt;br /&gt;== ODM Data Collection ==&lt;br /&gt;======================&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;Dump file /sbRdbms/app/oracle/diag/asm/+asm/+ASM1/incident/incdir_17865/+ASM1_ora_5029906_i17865.trc&lt;br /&gt;Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production&lt;br /&gt;With the Partitioning, Real Application Clusters, OLAP, Data Mining&lt;br /&gt;and Real Application Testing options&lt;br /&gt;ORACLE_HOME = /sbRdbms/app/oracle/product/ASM&lt;br /&gt;System name: AIX&lt;br /&gt;Node name: abcdbs01&lt;br /&gt;Release: 1&lt;br /&gt;Version: 6&lt;br /&gt;Machine: 00CD96944C00&lt;br /&gt;Instance name: +ASM1&lt;br /&gt;Redo thread mounted by this instance: 0 &lt;none&gt;&lt;br /&gt;Oracle process number: 33&lt;br /&gt;Unix process pid: 5029906, image: oracle@abcdbs01 (TNS V1-V3)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*** 2011-07-24 14:45:00.080&lt;br /&gt;*** SESSION ID:(83.3) 2011-07-24 14:45:00.080&lt;br /&gt;*** CLIENT ID:() 2011-07-24 14:45:00.080&lt;br /&gt;*** SERVICE NAME:() 2011-07-24 14:45:00.080&lt;br /&gt;*** MODULE NAME:(oracle@abcdbs01 (TNS V1-V3)) 2011-07-24 14:45:00.080&lt;br /&gt;*** ACTION NAME:() 2011-07-24 14:45:00.080&lt;br /&gt;&lt;br /&gt;Dump continued from file: /sbRdbms/app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_ora_5029906.trc&lt;br /&gt;ORA-07445: exception encountered: core dump [_ptrgl()] [SIGSEGV] [ADDR:0x7F8000007FC00000] [PC:0x10000DE98] [Address not mapped to object] []&lt;br /&gt;&lt;br /&gt;========= Dump for incident 17865 (ORA 7445 [_ptrgl()]) ========&lt;br /&gt;----- Beginning of Customized Incident Dump(s) -----&lt;br /&gt;Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x7F8000007FC00000] [PC:0x10000DE98, _ptrgl()]&lt;br /&gt;Registers:&lt;br /&gt;iar: 0x000000010000de98 lr: 0x0000000102274170&lt;br /&gt;msr: 0xa00000000000d032 cr: 0x0000000024202220&lt;br /&gt;r00: 0x0000000000000028 r01: 0x0fffffffffff9250 r02: 0x0000000110352700&lt;br /&gt;r03: 0x0fffffffffffaf50 r04: 0x0000000000000140 r05: 0x0000000000002683&lt;br /&gt;r06: 0x0000000000000001 r07: 0x0000000000000005 r08: 0x00000000ffff9450&lt;br /&gt;r09: 0x0fffffffffff9348 r10: 0x0700000010f9d400 r11: 0x7f8000007fc00000&lt;br /&gt;r12: 0x0000000044202220 r13: 0x00000001103a8e18 r14: 0x0000000000000000&lt;br /&gt;r15: 0x0fffffffffffac48 r16: 0x00000000000001d5 r17: 0x0000000110282a98&lt;br /&gt;r18: 0x0fffffffffffb104 r19: 0x00000001100caa28 r20: 0x000000010762e2b0&lt;br /&gt;r21: 0x0000000000000000 r22: 0x00000000000000b8 r23: 0x0000000000000000&lt;br /&gt;r24: 0x000000000000008f r25: 0x0000000107d164d8 r26: 0x0000000000000000&lt;br /&gt;r27: 0x00000001100cab80 r28: 0x0fffffffffff9a20 r29: 0x0700000000003640&lt;br /&gt;r30: 0x000000010859bee8 r31: 0x0fffffffffffaf50&lt;br /&gt;&lt;br /&gt;*** 2011-07-24 14:45:00.080&lt;br /&gt;----- SQL Statement (None) -----&lt;br /&gt;Current SQL information unavailable - no cursor.&lt;br /&gt;&lt;br /&gt;----- Call Stack Trace -----&lt;br /&gt;calling call entry argument values in hex&lt;br /&gt;location type point (? means dubious value)&lt;br /&gt;-------------------- -------- -------------------- ----------------------------&lt;br /&gt;opiodr ttcpip opitsk opiino opiodr opidrv sou2o opimai_real main start&lt;br /&gt;&lt;br /&gt;....................&lt;br /&gt;&lt;br /&gt;Argument/Register addr=0x1078833c2.&lt;br /&gt;Dump of memory from 0x107883382 to 0x1078834c2&lt;br /&gt;107883380 7820206C 723A2030 78253031 366C780A [x lr: 0x%016lx.]&lt;br /&gt;107883390 0049424D 6D73723A 20307825 3031366C [.IBMmsr: 0x%016l]&lt;br /&gt;1078833A0 78202063 723A2030 78253031 36780A00 [x cr: 0x%016x..]&lt;br /&gt;1078833B0 72253032 643A2030 78253031 366C7825 [r%02d: 0x%016lx%]&lt;br /&gt;1078833C0 63000A00 00000000 00000000 4E4F5449 [c...........NOTI]&lt;br /&gt;1078833D0 43453A20 50726F63 65737320 72656365 [CE: Process rece]&lt;br /&gt;1078833E0 69766564 20736967 6E616C20 5349474C [ived signal SIGL]&lt;br /&gt;1078833F0 4F53542E 20546865 7265666F 72652C20 [OST. Therefore, ]&lt;br /&gt;107883400 74686520 63616C6C 0A202020 20202020 [the call. ]&lt;br /&gt;107883410 20737461 636B2064 6F657320 6E6F7420 [ stack does not ]&lt;br /&gt;107883420 706F696E 7420746F 20746865 206C6F63 [point to the loc]&lt;br /&gt;107883430 6174696F 6E206F66 20746865 2070726F [ation of the pro]&lt;br /&gt;107883440 626C656D 2E0A0A00 0A457863 65707469 [blem.....Excepti]&lt;br /&gt;107883450 6F6E205B 74797065 3A202573 2C202573 [on [type: %s, %s]&lt;br /&gt;107883460 5D205B41 4444523A 3078256C 585D0049 [] [ADDR:0x%lX].I]&lt;br /&gt;107883470 205B5043 3A307825 6C582C20 0049424D [ [PC:0x%lX, .IBM]&lt;br /&gt;107883480 7B656D70 74797D00 25735D00 205B6578 [{empty}.%s]. [ex]&lt;br /&gt;107883490 63657074 696F6E20 69737375 65642062 [ception issued b]&lt;br /&gt;1078834A0 79207069 643A2025 642C2075 69643A20 [y pid: %d, uid: ]&lt;br /&gt;1078834B0 25645D00 50433A30 78256C58 0049424D [%d].PC:0x%lX.IBM]&lt;br /&gt;1078834C0 41444452 [ADDR]&lt;br /&gt;.....................&lt;br /&gt;&lt;br /&gt;----------------------------------------&lt;br /&gt;SO: 0x700000010f9b9e0, type: 4, owner: 0x700000010e692d0, flag: INIT/-/-/0x00 if: 0x3 c: 0x3&lt;br /&gt;proc=0x700000010e692d0, name=session, file=ksu.h LINE:10719 ID:, pg=0&lt;br /&gt;(session) sid: 83 ser: 3 trans: 0x0, creator: 0x700000010e692d0&lt;br /&gt;flags: (0x41) USR/- flags_idl: (0x1) BSY/-/-/-/-/-&lt;br /&gt;flags2: (0x8) -/-&lt;br /&gt;DID: , short-term DID:&lt;br /&gt;txn branch: 0x0&lt;br /&gt;oct: 0, prv: 0, sql: 0x0, psql: 0x0, user: 0/SYS&lt;br /&gt;ksuxds FALSE at location: 0&lt;br /&gt;service name: SYS$USERS&lt;br /&gt;client details:&lt;br /&gt;O/S info: user: oracle, term: , ospid: 1716314&lt;br /&gt;machine: abcdbs01 program: oracle@abcdbs01 (TNS V1-V3)&lt;br /&gt;application name: oracle@abcdbs01 (TNS V1-V3), hash value=335489673&lt;br /&gt;Current Wait Stack:&lt;br /&gt;0: waiting for 'ASM file metadata operation'&lt;br /&gt;msgop=28, locn=1, =0&lt;br /&gt;wait_id=5596 seq_num=9859 snap_id=1&lt;br /&gt;wait times: snap=2.076467 sec, exc=2.076467 sec, total=2.076467 sec&lt;br /&gt;wait times: max=infinite&lt;br /&gt;wait counts: calls=0 os=0&lt;br /&gt;in_wait=1 iflags=0x5a0&lt;br /&gt;Wait State:&lt;br /&gt;auto_close=0 flags=0x22 boundary=0x0/-1&lt;br /&gt;Session Wait History:&lt;br /&gt;0: waited for 'SQL*Net message from client'&lt;br /&gt;driver id=62657100, #bytes=1, =0&lt;br /&gt;wait_id=5595 seq_num=9858 snap_id=1&lt;br /&gt;wait times: snap=4.945453 sec, exc=4.945453 sec, total=4.945453 sec&lt;br /&gt;wait times: max=infinite&lt;br /&gt;wait counts: calls=0 os=0&lt;br /&gt;occurred after 0.000004 sec of elapsed time&lt;br /&gt;1: waited for 'SQL*Net message to client'&lt;br /&gt;driver id=62657100, #bytes=1, =0&lt;br /&gt;wait_id=5594 seq_num=9857 snap_id=1&lt;/none&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-319348373976287447?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/319348373976287447/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=319348373976287447&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/319348373976287447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/319348373976287447'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/08/seguito-di-un-crash-di-entrambe-le.html' title=''/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-3760532939530387197</id><published>2011-08-02T13:39:00.002+02:00</published><updated>2011-08-02T13:46:37.890+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='netezza'/><category scheme='http://www.blogger.com/atom/ns#' term='backup'/><title type='text'>Backup on Netezza</title><content type='html'>&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;1. Creazione del database&lt;/div&gt;&lt;br /&gt;SYSTEM(ADMIN)=&amp;gt; create database as_test;&lt;br /&gt;CREATE DATABASE&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Il database "as_test" non ha tabelle&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;2. Backup del database&lt;/div&gt;&lt;br /&gt;[nz@dwhntzc SalzanoA]$ nz_backup -host dwhntzc -format binary -dir /dwhntzc_fs/SalzanoA/bck_asTest -db as_test&lt;br /&gt;&lt;br /&gt;nz_backup of database AS_TEST started on 2011-08-02 12:18:19&lt;br /&gt;&lt;br /&gt;NZ_HOST: dwhntzc&lt;br /&gt;NZ_USER: ADMIN&lt;br /&gt;NZ_DATABASE: AS_TEST&lt;br /&gt;Backup Directory: /dwhntzc_fs/SalzanoA/bck_asTest&lt;br /&gt;Backup Format: binary&lt;br /&gt;Custom Script:&lt;br /&gt;# Of Threads: 1&lt;br /&gt;Using stableTXid: 24582039&lt;br /&gt;The lastTXid assigned was: 24582040&lt;br /&gt;&lt;br /&gt;=========================================================================&lt;br /&gt;&lt;br /&gt;ERROR: 0 tables were processed !!&lt;br /&gt;It would appear that there are no tables defined in the database that&lt;br /&gt;is being backed up (or restored).  Or, perhaps this database account&lt;br /&gt;doesn't have access to those tables.&lt;br /&gt;&lt;br /&gt;=========================================================================&lt;br /&gt;&lt;br /&gt;nz_backup of database AS_TEST finished on 2011-08-02 12:18:19&lt;br /&gt;&lt;br /&gt;Total # of tables processed: 0&lt;br /&gt;Total # of seconds elapsed : 0&lt;br /&gt;&lt;br /&gt;=========================================================================&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;3. Creazione di una tabella&lt;/div&gt;&lt;br /&gt;[nz@dwhntzc SalzanoA]$ nzsql -E as_test&lt;br /&gt;********* QUERY *********&lt;br /&gt;select current_catalog, current_user&lt;br /&gt;*************************&lt;br /&gt;&lt;br /&gt;SYSTEM(ADMIN)=&amp;gt; \c as_test asalzano a$a7zan0&lt;br /&gt;You are now connected to database as_test as user asalzano.&lt;br /&gt;********* QUERY *********&lt;br /&gt;select current_catalog, current_user&lt;br /&gt;*************************&lt;br /&gt;&lt;br /&gt;AS_TEST(ASALZANO)=&amp;gt; create table as_mytab (one integer);&lt;br /&gt;CREATE TABLE&lt;br /&gt;&lt;br /&gt;[nz@dwhntzc SalzanoA]$ nz_backup -host dwhntzc -format binary -dir /dwhntzc_fs/SalzanoA/bck_asTest -db as_test&lt;br /&gt;&lt;br /&gt;nz_backup of database AS_TEST started on 2011-08-02 13:38:39&lt;br /&gt;&lt;br /&gt;NZ_HOST: dwhntzc&lt;br /&gt;NZ_USER: ADMIN&lt;br /&gt;NZ_DATABASE: AS_TEST&lt;br /&gt;Backup Directory: /dwhntzc_fs/SalzanoA/bck_asTest&lt;br /&gt;Backup Format: binary&lt;br /&gt;Custom Script:&lt;br /&gt;# Of Threads: 1&lt;br /&gt;Using stableTXid: 24582153&lt;br /&gt;The lastTXid assigned was: 24582154&lt;br /&gt;&lt;br /&gt;=========================================================================&lt;br /&gt;&lt;br /&gt;Info:  table 1 of 1                                               AS_MYTAB&lt;br /&gt;Info:  backup  process started                                    2011-08-02 13:38:39&lt;br /&gt;Info:  estimated # of records                                     0&lt;br /&gt;Info:  unloading data              ( thread 1 of 1 )&lt;br /&gt;Info:  data flowing ...&lt;br /&gt;Info:  unload finished             ( thread 1 of 1 )   seconds    0&lt;br /&gt;Info:  unload results              ( thread 1 of 1 )              INSERT 0 0&lt;br /&gt;Info:  data flow finished&lt;br /&gt;Info:  backup  process ended                                      2011-08-02 13:38:39&lt;br /&gt;Info:  # of records unloaded                                      0&lt;br /&gt;Info:  # of seconds elapsed                                       0&lt;br /&gt;&lt;br /&gt;=========================================================================&lt;br /&gt;&lt;br /&gt;nz_backup of database AS_TEST finished on 2011-08-02 13:38:39&lt;br /&gt;&lt;br /&gt;Total # of tables processed: 1&lt;br /&gt;Total # of records unloaded: 0&lt;br /&gt;Total # of seconds elapsed : 0&lt;br /&gt;&lt;br /&gt;=========================================================================&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-3760532939530387197?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/3760532939530387197/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=3760532939530387197&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/3760532939530387197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/3760532939530387197'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/08/backup-on-netezza.html' title='Backup on Netezza'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-2118254476664469417</id><published>2011-08-02T12:28:00.000+02:00</published><updated>2011-08-02T12:28:09.534+02:00</updated><title type='text'>Managing privileges on Netezza</title><content type='html'>[nz@dwhntzc SalzanoA]$ nzsql -E&lt;br /&gt;********* QUERY *********&lt;br /&gt;select current_catalog, current_user&lt;br /&gt;*************************&lt;br /&gt;&lt;br /&gt;SYSTEM(ADMIN)=&gt; grant connect on as_test to asalzano;&lt;br /&gt;GRANT&lt;br /&gt;&lt;br /&gt;SYSTEM(ADMIN)=&gt; grant create table to asalzano;&lt;br /&gt;GRANT&lt;br /&gt;&lt;br /&gt;SYSTEM(ADMIN)=&gt; \c as_test asalzano xxxxxx&lt;br /&gt;You are now connected to database as_test as user asalzano.&lt;br /&gt;********* QUERY *********&lt;br /&gt;select current_catalog, current_user&lt;br /&gt;*************************&lt;br /&gt;&lt;br /&gt;AS_TEST(ASALZANO)=&gt; create table as_mytab (one integer);&lt;br /&gt;CREATE TABLE&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-2118254476664469417?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/2118254476664469417/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=2118254476664469417&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/2118254476664469417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/2118254476664469417'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/08/managing-privileges-on-netezza.html' title='Managing privileges on Netezza'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-7742293534571797590</id><published>2011-07-25T19:33:00.005+02:00</published><updated>2011-08-03T17:39:42.486+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Monitoring'/><category scheme='http://www.blogger.com/atom/ns#' term='Transaction'/><title type='text'>Transaction Rollback Monitoring</title><content type='html'>&lt;a href="http://download.oracle.com/docs/cd/E11882_01/server.112/e17110/dynviews_1133.htm#i1405013"&gt;&lt;code&gt;V$FAST_START_TRANSACTIONS&lt;/code&gt;&lt;/a&gt; displays information about the progress of the transactions that Oracle is recovering.&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;alter session set nls_date_format='dd/mm/yyyy hh24:mi:ss';&lt;br /&gt;&lt;br /&gt;select usn, state, undoblockstotal "Total", undoblocksdone||' ('||round(UNDOBLOCKSDONE/UNDOBLOCKSTOTAL*100,2)||'%)' "Done",&lt;br /&gt;&amp;nbsp;undoblockstotal-undoblocksdone "ToDo",&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; decode(cputime,0,'unknown',sysdate+(((undoblockstotal-undoblocksdone) / (undoblocksdone / cputime)) / 86400))||' ('|| round((undoblockstotal-undoblocksdone)/UNDOBLOCKSDONE*CPUTIME/3600,2)||'h)' "Estimated time to complete" &lt;br /&gt;&amp;nbsp; from v$fast_start_transactions; &lt;/div&gt;&lt;br /&gt;&lt;table border="0"&gt;&lt;tbody&gt;&lt;tr&gt;   &lt;th align="left" bgcolor="#C0C0C0" bordercolor="#FFFFFF"&gt;USN&lt;/th&gt;   &lt;th align="left" bgcolor="#C0C0C0" bordercolor="#FFFFFF"&gt;STATE&lt;/th&gt;   &lt;th align="left" bgcolor="#C0C0C0" bordercolor="#FFFFFF"&gt;Total&lt;/th&gt;   &lt;th align="left" bgcolor="#C0C0C0" bordercolor="#FFFFFF"&gt;Done&lt;/th&gt;   &lt;th align="left" bgcolor="#C0C0C0" bordercolor="#FFFFFF"&gt;ToDo&lt;/th&gt;   &lt;th align="left" bgcolor="#C0C0C0" bordercolor="#FFFFFF"&gt;Estimated time to complete&lt;/th&gt;   &lt;/tr&gt;&lt;tr&gt;    &lt;td nowrap="nowrap"&gt;&lt;div align="right"&gt;63&lt;/div&gt;&lt;/td&gt;     &lt;td nowrap="nowrap"&gt;RECOVERING&lt;/td&gt;     &lt;td nowrap="nowrap"&gt;&lt;div align="right"&gt;349526&lt;/div&gt;&lt;/td&gt;     &lt;td nowrap="nowrap"&gt;194208 (55,56%)&lt;/td&gt;     &lt;td nowrap="nowrap"&gt;&lt;div align="right"&gt;155318&lt;/div&gt;&lt;/td&gt;     &lt;td nowrap="nowrap"&gt;27/07/2011 16:34:04 (20,25h)&lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt;    &lt;td nowrap="nowrap"&gt;&lt;div align="right"&gt;86&lt;/div&gt;&lt;/td&gt;     &lt;td nowrap="nowrap"&gt;RECOVERING&lt;/td&gt;     &lt;td nowrap="nowrap"&gt;&lt;div align="right"&gt;309253&lt;/div&gt;&lt;/td&gt;     &lt;td nowrap="nowrap"&gt;194095 (62,76%)&lt;/td&gt;     &lt;td nowrap="nowrap"&gt;&lt;div align="right"&gt;115158&lt;/div&gt;&lt;/td&gt;     &lt;td nowrap="nowrap"&gt;27/07/2011 11:20:29 (15,02h)&lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;a href="https://support.oracle.com/CSP/main/article?cmd=show&amp;amp;type=NOT&amp;amp;doctype=HOWTO&amp;amp;id=414242.1"&gt;Database Hangs Because SMON is taking 100% CPU doing transaction recovery&lt;/a&gt; [ID 414242.1]&lt;br /&gt;&lt;a href="https://support.oracle.com/CSP/main/article?cmd=show&amp;amp;type=NOT&amp;amp;doctype=PROBLEM&amp;amp;id=238507.1"&gt;How to Disable Parallel Transaction Recovery When Parallel Txn Recovery is Active&lt;/a&gt; [ID 238507.1]&lt;br /&gt;&lt;a href="https://support.oracle.com/CSP/main/article?cmd=show&amp;amp;type=NOT&amp;amp;doctype=PROBLEM&amp;amp;id=1060831.6"&gt;Rollback Is Taking A Long Time After Session Killed&lt;/a&gt; [ID 1060831.6]&lt;br /&gt;&lt;a href="https://support.oracle.com/CSP/main/article?cmd=show&amp;amp;type=NOT&amp;amp;doctype=PROBLEM&amp;amp;id=169138.1"&gt;How Long Will My Rollback Take? Is my Transaction Doing Anything?&lt;/a&gt; [ID 169138.1]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-7742293534571797590?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/7742293534571797590/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=7742293534571797590&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/7742293534571797590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/7742293534571797590'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/07/vfaststarttransactions-displays.html' title='Transaction Rollback Monitoring'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-7524097716213505713</id><published>2011-07-22T12:28:00.001+02:00</published><updated>2011-07-22T15:17:34.550+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Concept'/><category scheme='http://www.blogger.com/atom/ns#' term='CBO'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><title type='text'>SQL Tuning Sets</title><content type='html'>A SQL Tuning Set (STS) is a database object that includes one or more SQL statements along with their execution statistics and execution context, and could include a user priority ranking. The SQL statements can be loaded into a SQL Tuning Set from different SQL sources, such as the Automatic Workload Repository, the cursor cache, or custom SQL provided by the user.&lt;br /&gt;&lt;br /&gt;An STS includes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A set of SQL statements&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Associated execution context, such as user schema, application module name and action, list of bind values, and the cursor compilation environment&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Associated basic execution statistics, such as elapsed time, CPU time, buffer gets, disk reads, rows processed, cursor fetches, the number of executions, the number of complete executions, optimizer cost, and the command type&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Associated execution plans and row source statistics for each SQL statement (optional)&lt;/li&gt;&lt;/ul&gt;A SQL Tuning Set can be used as input to the SQL Tuning Advisor, which performs automatic tuning of the SQL statements based on other input parameters specified by the user. SQL Tuning Sets are transportable across databases and can be exported from one system to another, allowing for the transfer of SQL workloads between databases for remote performance diagnostics and tuning. To transport SQL Tuning Sets, use the DBMS_SQLTUNE package procedures.&lt;br /&gt;&lt;br /&gt;(&lt;a href="http://download.oracle.com/docs/cd/B19306_01/server.102/b14211.pdf"&gt;Performance Tuning Guide&lt;/a&gt; - Ch12.9)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-7524097716213505713?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/7524097716213505713/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=7524097716213505713&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/7524097716213505713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/7524097716213505713'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/07/sql-tuning-sets.html' title='SQL Tuning Sets'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-5279026928661127515</id><published>2011-07-22T10:58:00.006+02:00</published><updated>2011-07-22T11:00:45.873+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Concept'/><category scheme='http://www.blogger.com/atom/ns#' term='CBO'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><title type='text'>Choosing an Access Path</title><content type='html'>To choose an access path, the optimizer first determines which access paths are available by examining the conditions in the statement's WHERE clause and its FROM clause. The optimizer then generates a set of possible execution plans using available access paths and estimates the cost of each plan, using the statistics for the index, columns, and tables accessible to the statement. Finally, the optimizer chooses the execution plan with the lowest estimated cost.&lt;br /&gt;&lt;br /&gt;When choosing an access path, the optimizer is influenced by the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Optimizer hints: The optimizer's choice among available access paths can be overridden with hints. (Using hints requires changing the code)&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Statistics: For example, if a table has not been analyzed since it was created, and the table statistics show that it is small, then the optimizer uses a full table scan. The LAST_ANALYZED and BLOCKS columns in the ALL_TABLES table reflect the statistics used by the optimizer.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;SQL outlines, SQL baseline plans, and SQL profiles: If these exist they will override the optimizer choices. For more information see the SQL Performance Management lesson.&lt;/li&gt;&lt;/ul&gt;(Oracle Database 11g: Performance Tuning Ch10.17)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-5279026928661127515?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/5279026928661127515/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=5279026928661127515&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/5279026928661127515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/5279026928661127515'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/07/choosing-access-path.html' title='Choosing an Access Path'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-741734207107548169</id><published>2011-07-21T19:54:00.006+02:00</published><updated>2011-07-22T11:02:13.284+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hierarchical'/><category scheme='http://www.blogger.com/atom/ns#' term='Concept'/><title type='text'>Hierarchical Queries</title><content type='html'>Come ottenere un result set utilizzando query gerarichiche.&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;SELECT LPAD(' ', LEVEL*2)||columnX&lt;br /&gt;FROM   table&lt;br /&gt;WHERE condition(s)&lt;br /&gt;START WITH condition(s)&lt;br /&gt;CONNECT BY PRIOR column1 = column2&lt;br /&gt;ORDER SIBLINGS BY columnX;&lt;/div&gt;&lt;br /&gt;Ci sono due modi di ricevere i dati (il top-down coincide con la visita in ordine anticipato di un albero):&lt;br /&gt;&lt;br /&gt;=======&lt;br /&gt;Top down&lt;br /&gt;=======&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;column1 = Parent Key&lt;br /&gt;column2 = Child Key&lt;/div&gt;&lt;br /&gt;=======&lt;br /&gt;Bottom up&lt;br /&gt;=======&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;column1 = Child Key&lt;br /&gt;column2 = Parent Key&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;The direction of the query, whether it is from parent to child or from child to parent, is determined by the CONNECT BY PRIOR column placement. The PRIOR operator refers to the parent row. To find the child rows of a parent row, the Oracle server evaluates the PRIOR expression for the parent row and the other expressions for each row in the table. Rows for which the condition is true are the child rows of the parent. The Oracle server always selects child rows by evaluating the CONNECT BY condition with respect to a current parent row.&lt;/i&gt;&lt;/div&gt;(11g SQL Fundamentals II - App F.7)&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;You have to be careful when trying to order the rows of output in a hierarchical query. By default, if you omit the ORDER BY clause altogether, the query attempts to sort rows in an order that’s reflective of the hierarchy. Display will start first with a LEVEL 1 row. If that row is superior to any LEVEL 2 rows, those rows will display next before another LEVEL 1 row displays. The same approach is taken at LEVEL 2, so that rows will display down to leaf node levels before the next rows show at the higher levels. The result is a display that is meaningful to the hierarchy. But if you try to order these rows with the ORDER BY clause, you’ll create a syntactically correct statement that probably doesn’t help you much. ORDER SIBLINGS sorts rows within each given level, not across levels, thus retaining the hierarchical relationship across rows of output. Note that our earlier use of ORDER BY did not create an error message, just misleading output&lt;/i&gt;&lt;/div&gt;(OCA Oracle Database SQL Certified Expert Exam Guide)&lt;br /&gt;&lt;br /&gt;Per esempio, il top-down:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;SELECT LPAD(' ', LEVEL*2)||last_name&lt;br /&gt;FROM    employees&lt;br /&gt;START   WITH last_name = 'King'&lt;br /&gt;CONNECT BY PRIOR employee_id = manager_id&lt;br /&gt;ORDER SIBLINGS BY last_name;&lt;/div&gt;&lt;br /&gt;Userò il concetto di query gerarchiche in due casi:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;lock&lt;/li&gt;&lt;li&gt;parallel query&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-741734207107548169?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/741734207107548169/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=741734207107548169&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/741734207107548169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/741734207107548169'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/07/hierarchical-queries.html' title='Hierarchical Queries'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-5628962623510680219</id><published>2011-07-15T11:21:00.001+02:00</published><updated>2011-07-15T11:22:50.081+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dos'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Modify dos windows colours</title><content type='html'>Questi i parametri della finestra dos utilizzati da Power Shell&lt;br /&gt;&lt;br /&gt;Layout: Dimensioni buffer dello schermo&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td&gt;Larghezza&lt;/td&gt; &lt;td&gt;120&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Altezza&lt;/td&gt; &lt;td&gt;3000&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Layout: Dimensioni finestra&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td&gt;Larghezza&lt;/td&gt; &lt;td&gt;120&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Altezza&lt;/td&gt; &lt;td&gt;52&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Layout: Posizione finestra&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td&gt;Sinistra&lt;/td&gt; &lt;td&gt;201&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Alto&lt;/td&gt; &lt;td&gt;18&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Colori: Testo normale&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td&gt;Rosso&lt;/td&gt; &lt;td&gt;255&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Verde&lt;/td&gt; &lt;td&gt;255&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Blu&lt;/td&gt; &lt;td&gt;255&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Colori: Sfondo normale&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td&gt;Rosso&lt;/td&gt; &lt;td&gt;1&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Verde&lt;/td&gt; &lt;td&gt;36&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Blu&lt;/td&gt; &lt;td&gt;86&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Colori: Testo popup&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td&gt;Rosso&lt;/td&gt; &lt;td&gt;128&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Verde&lt;/td&gt; &lt;td&gt;0&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Blu&lt;/td&gt; &lt;td&gt;128&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Colori: Sfondo popoup&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td&gt;Rosso&lt;/td&gt; &lt;td&gt;255&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Verde&lt;/td&gt; &lt;td&gt;255&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Blu&lt;/td&gt; &lt;td&gt;255&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-5628962623510680219?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/5628962623510680219/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=5628962623510680219&amp;isPopup=true' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/5628962623510680219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/5628962623510680219'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/07/modify-dos-windows-colours.html' title='Modify dos windows colours'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-329215444002489732</id><published>2011-07-14T15:17:00.004+02:00</published><updated>2011-07-14T15:30:33.333+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Developer'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>How to change language of SQL Developer</title><content type='html'>Nella direcotry "bin" di SQL Developer, aprire il file "sqldeveloper.conf" ed aggiungere o modificare le seguenti due righe:&lt;br /&gt;&lt;pre style="white-space: pre;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="white-space: pre;"&gt;AddVMOption -Duser.language=en&lt;br /&gt;AddVMOption -Duser.country=US&lt;/pre&gt;&lt;pre style="white-space: pre;"&gt;&amp;nbsp;&lt;/pre&gt;Una volta fatto, chiudere e riavviare l'applicazione.&lt;br /&gt;&lt;br /&gt;Questo il link originale: &lt;a href="http://oraclequirks.blogspot.com/2009/03/how-to-change-language-of-sql.html"&gt;How to change the language of SQL Developer's user interface?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Di seguito due immagini utili a mostrare le modifiche da fare.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-wrlH4Y58W0I/Th7rNJW9_HI/AAAAAAAAAws/cr8C7syHLr0/s1600/sqldevelop.conf.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="154" src="http://1.bp.blogspot.com/-wrlH4Y58W0I/Th7rNJW9_HI/AAAAAAAAAws/cr8C7syHLr0/s320/sqldevelop.conf.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://4.bp.blogspot.com/-L0gjncX55Dk/Th7vSWgzg6I/AAAAAAAAAw0/KgeYilY4Cy8/s1600/edit+-+sqldevelop.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="168" src="http://4.bp.blogspot.com/-L0gjncX55Dk/Th7vSWgzg6I/AAAAAAAAAw0/KgeYilY4Cy8/s320/edit+-+sqldevelop.JPG" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-NoXYMxQ06qU/Th7t-FjX3KI/AAAAAAAAAww/i_qIYdCSAkU/s1600/edit+-+sqldevelop.conf" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-329215444002489732?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/329215444002489732/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=329215444002489732&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/329215444002489732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/329215444002489732'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/07/how-to-change-language-of-sql-developer.html' title='How to change language of SQL Developer'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-wrlH4Y58W0I/Th7rNJW9_HI/AAAAAAAAAws/cr8C7syHLr0/s72-c/sqldevelop.conf.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-8616379182988835674</id><published>2011-07-14T11:11:00.002+02:00</published><updated>2011-07-14T11:16:20.359+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='netezza'/><category scheme='http://www.blogger.com/atom/ns#' term='create user'/><title type='text'>Create new user and assign grant</title><content type='html'>&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: small;"&gt;[nz@dwhtwf01 ~]$ nzsql&lt;br /&gt;Welcome to nzsql, the Netezza SQL interactive terminal.&lt;br /&gt;&lt;br /&gt;Type:&amp;nbsp; \h for help with SQL commands&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \? for help on internal slash commands&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \g or terminate with semicolon to execute query&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \q to quit&lt;br /&gt;&lt;br /&gt;SYSTEM(ADMIN)=&amp;gt; CREATE USER sarusso WITH PASSWORD 'please_change_me';&lt;br /&gt;CREATE USER&lt;br /&gt;&lt;br /&gt;SYSTEM(ADMIN)=&amp;gt; ALTER GROUP group_dev ADD USER sarusso;&lt;br /&gt;ALTER GROUP&lt;br /&gt;&lt;br /&gt;SYSTEM(ADMIN)=&amp;gt; ALTER GROUP group_analyst ADD USER sarusso;&lt;br /&gt;ALTER GROUP&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SYSTEM(ADMIN)=&amp;gt; \c NTZ_DWDMP&lt;br /&gt;You are now connected to database NTZ_DWDMP.&lt;br /&gt;&lt;br /&gt;NTZ_DWDMP(ADMIN)=&amp;gt; GRANT LIST ON TABLE TO sarusso;&lt;br /&gt;GRANT&lt;br /&gt;&lt;br /&gt;NTZ_DWDMP(ADMIN)=&amp;gt; GRANT SELECT ON TABLE TO sarusso;&lt;br /&gt;GRANT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;NTZ_DWDMP(ADMIN)=&amp;gt; \c NTZ_DWDMS&lt;br /&gt;You are now connected to database NTZ_DWDMS.&lt;br /&gt;&lt;br /&gt;NTZ_DWDMS(ADMIN)=&amp;gt; GRANT LIST ON TABLE TO sarusso;&lt;br /&gt;GRANT&lt;br /&gt;&lt;br /&gt;NTZ_DWDMS(ADMIN)=&amp;gt; GRANT SELECT ON TABLE TO sarusso;&lt;br /&gt;GRANT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;NTZ_DWDMS(ADMIN)=&amp;gt; \c NTZ_DWSAS&lt;br /&gt;You are now connected to database NTZ_DWSAS.&lt;br /&gt;&lt;br /&gt;NTZ_DWSAS(ADMIN)=&amp;gt; GRANT LIST ON TABLE TO sarusso;&lt;br /&gt;GRANT&lt;br /&gt;&lt;br /&gt;NTZ_DWSAS(ADMIN)=&amp;gt;&amp;nbsp; GRANT SELECT ON TABLE TO sarusso;&lt;br /&gt;GRANT&lt;br /&gt;&lt;br /&gt;NTZ_DWSAS(ADMIN)=&amp;gt; \q&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-8616379182988835674?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/8616379182988835674/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=8616379182988835674&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/8616379182988835674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/8616379182988835674'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/07/create-new-user-and-assign-grant.html' title='Create new user and assign grant'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-4137766610115100641</id><published>2011-06-22T10:53:00.003+02:00</published><updated>2011-06-22T18:17:27.359+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lock'/><category scheme='http://www.blogger.com/atom/ns#' term='wait'/><category scheme='http://www.blogger.com/atom/ns#' term='gv$session'/><title type='text'>who block me?</title><content type='html'>&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: small;"&gt;col username for a25&lt;br /&gt;col IS_BLOCKED_BY for a20&lt;br /&gt;col state for a40&lt;br /&gt;col sql_id for a15&lt;br /&gt;col obj for a80 &lt;br /&gt;set lines 220&lt;br /&gt;set trim on &lt;br /&gt;&lt;br /&gt;select&lt;br /&gt;&amp;nbsp; nvl(USERNAME,schemaname)||' ('||SID||':'||INST_ID||')' USERNAME&lt;br /&gt;&amp;nbsp;,SQL_ID&lt;br /&gt;&amp;nbsp;,nvl2(BLOCKING_SESSION,BLOCKING_SESSION||':'||BLOCKING_INSTANCE||':'||&lt;br /&gt;&amp;nbsp;&amp;nbsp; (select&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sql_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; from&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gv$session holder&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; where&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; holder.inst_id= s.BLOCKING_INSTANCE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; and holder.sid=s.BLOCKING_SESSION), null) IS_BLOCKED_BY&lt;br /&gt;&amp;nbsp;,decode(state, 'WAITING', 'WAITING', 'ON CPU')||'&lt;br /&gt;&amp;nbsp;('||substr(event,1,40)||')' state&lt;br /&gt;&amp;nbsp;,ROW_WAIT_FILE#||':'||ROW_WAIT_BLOCK#||':'||ROW_WAIT_ROW#||'&lt;br /&gt;'||case  &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; when ROW_WAIT_OBJ# &amp;gt;0 then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (select owner||':'||object_name||':'||nvl(subobject_name,'=nosub=')||' ('||object_type||')'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dba_objects do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do.object_id=s.ROW_WAIT_OBJ#) &lt;br /&gt;&amp;nbsp; end obj&lt;br /&gt;from&lt;br /&gt;&amp;nbsp; gv$session s&lt;br /&gt;where&lt;br /&gt;&amp;nbsp; event in&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (select&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NAME&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v$event_name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WAIT_CLASS != 'Idle')&lt;br /&gt;order by sid;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-4137766610115100641?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/4137766610115100641/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=4137766610115100641&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/4137766610115100641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/4137766610115100641'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/06/who-block-me.html' title='who block me?'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-6343454933126140408</id><published>2011-06-21T11:01:00.000+02:00</published><updated>2011-06-21T11:01:21.280+02:00</updated><title type='text'>Format on Windows 7 [1]</title><content type='html'>From dos window:&lt;br /&gt;&lt;br /&gt;DISKPART&lt;br /&gt;LIST DISK&lt;br /&gt;SELECT DISK # (USB Stick)&lt;br /&gt;CLEAN ALL&lt;br /&gt;CREATE PARTITION PRIMARY&lt;br /&gt;SELECT PARTITION 1&lt;br /&gt;ACTIVE&lt;br /&gt;FORMAT FS=FAT32&lt;br /&gt;ASSIGN&lt;br /&gt;EXIT&lt;br /&gt;EXIT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[1] http://www.sevenforums.com/hardware-devices/61770-cannot-format-usb-flash-drive.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-6343454933126140408?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/6343454933126140408/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=6343454933126140408&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/6343454933126140408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/6343454933126140408'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/06/format-on-windows-7-1.html' title='Format on Windows 7 [1]'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-2546611422886394531</id><published>2011-06-20T17:39:00.001+02:00</published><updated>2011-06-20T17:40:01.628+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><title type='text'>Single quotes and double quote</title><content type='html'>Che differenza c'è tra gli apici singoli e quelli doppi in bash?&lt;br /&gt;&lt;br /&gt;Semplicemente, nel primo caso la shell non interpreta le variabili, cosa che invece fa nel secondo. In altri termini, nel secondo caso, la shell sostituisce la variabile con il suo valore.&lt;br /&gt;&lt;br /&gt;=========&lt;br /&gt;Apici singoli&lt;br /&gt;=========&lt;br /&gt;[my-lap]$ var1=pippo&lt;br /&gt;[my-lap]$ var2='$var1 &amp; pluto'&lt;br /&gt;[my-lap]$ echo $var2&lt;br /&gt;$var1 &amp; pluto&lt;br /&gt;&lt;br /&gt;=========&lt;br /&gt;Apici doppi&lt;br /&gt;=========&lt;br /&gt;[my-lap]$ var1=pippo&lt;br /&gt;[my-lap]$ var3="$var1 &amp; pluto"&lt;br /&gt;[my-lap]$ echo $var3&lt;br /&gt;pippo &amp; pluto&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-2546611422886394531?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/2546611422886394531/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=2546611422886394531&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/2546611422886394531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/2546611422886394531'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/06/single-quotes-and-double-quote.html' title='Single quotes and double quote'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-5388535157617257876</id><published>2011-06-19T16:16:00.000+02:00</published><updated>2011-06-19T16:16:02.802+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='workload'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><title type='text'>Workload</title><content type='html'>&lt;div style="text-align: justify;"&gt;Vediamo il significato di &lt;i&gt;workload&lt;/i&gt;, preso direttamente dal dizionario:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Workload&lt;/b&gt; – The amount of work that a machine produces or can produce in a specified time period [1] &lt;br /&gt;&lt;br /&gt;ovvero il "&lt;i&gt;workload&lt;/i&gt;" rappresenta la quantità di lavoro che una macchina produce o può produrre nell'unità di tempo. E' una definizione interessante a cui però occorre presrestare attenzione. Il termine "&lt;i&gt;macchina&lt;/i&gt;", anche se menzionato, non ha nulla a che fare con un computer o con un database. Qui, la "&lt;i&gt;macchina&lt;/i&gt;" è pensata come statica e pertanto non c'è la possibilità di migliorare le prestazioni. Per una fotocopiatrice ad esempio, indipendentemente dalla risma di carta utilizzata o dal numero di copie da produrre, il lavoro svolto è costante.&lt;br /&gt;&lt;br /&gt;Quando lavoriamo con i computer, il workload assume tutt'altro significato. Il carico di lavoro, nella sua definizione più generale, è il numero totale di richiesete che arrivano su di un sistema. Nel caso di un database, questo vuol dire che il workload è l'insieme degli statement SQL che, indipendentemente dalla loro esecuzione, arrivano su un'istanza e danno una risposta agli utenti che li hanno sottomessi.&lt;br /&gt;&lt;br /&gt;E' chiaro che questo è un concetto duro da accettare perché per "&lt;i&gt;insieme degli statement SQL che arrivano su un istanza&lt;/i&gt;" si intende proprio tutto l'SQL: sia quello visibile che quello non visibile. Ed in fondo è difficile fare il tuning dell'invisibile.&lt;br /&gt;&lt;br /&gt;Dobbiamo allora utilizzare una definizione più ampia di workload considerando ciò che il database vede indipendentemente da quello che succede al di fuori del database stesso. Questo vuol dire campionare, misurare, tracciare quelle statistiche, all'interno dell'RDBMS, che misurano, quantificano o caratterizzano cosa sia il workload. Ed è fondamentale non solo scegliere quelle che lo misurano ma anche considerare quelle che non dipendono dalle performance del db. Statistiche come "CPU usage", "elapsed time" ed i vari "wait event" non sono buoni esempi di misura del workload poiché dipendono ampiamente dal sistema su cui gli statement SQL stano girando. Metriche più appropriate potrebbero invece essere quelle di gruppo come "numero di esecuzioni di SQL", "active session", "users" etc.&lt;br /&gt;&lt;br /&gt;E' chiaro che mentre la scelta delle metriche deve essere indipendente da quanto avviene fuori dal db, ciò che misuriamo lo deve invece essere. Voglio dire che, quando definiamo un workload, al di là dalla metrica utilizzata, dobbiamo essere sicuri che quello che stiamo tracciando sia correlato alle risorse consumate all'interno del database. In questo possiamo allora dire, in base all'aumento o alla diminuzione del workload, qual è o quale sarà l'impatto sulle performance percepito.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[1] &lt;a href="http://www.databasejournal.com/features/oracle/article.php/3794731/What-Is-Your-Definition-of-Database-Workload.htm"&gt;What Is Your Definition of Database Workload?&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-5388535157617257876?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/5388535157617257876/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=5388535157617257876&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/5388535157617257876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/5388535157617257876'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/06/workload.html' title='Workload'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-6992474033965712494</id><published>2011-06-15T18:03:00.065+02:00</published><updated>2011-06-16T16:52:26.773+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AWR'/><category scheme='http://www.blogger.com/atom/ns#' term='Administration'/><category scheme='http://www.blogger.com/atom/ns#' term='Statistics'/><category scheme='http://www.blogger.com/atom/ns#' term='Metricx'/><title type='text'>Metrics</title><content type='html'>Le metriche mantengono traccia di differenti eventi durante la vita del database [1]. Queste sono visibili da &lt;span style="font-family: Courier New;"&gt;GV$METRICNAME.METRIC_NAME&lt;/span&gt;. &lt;br /&gt;&lt;br /&gt;Sono statistiche che misurano la variazione dei cambiamenti in statistiche di performance comulative [2]. L'idea di base è la seguente [5]:&lt;br /&gt;&lt;br /&gt;Tra di esse troviamo: "CPU Usage Per Sec", "Elapsed Time Per User Call", "Host CPU Utilization", etc.&lt;br /&gt;&lt;br /&gt;Prendo un valore V1, all'istante T1 ed uno V2, all'istante T2. A questo punto, la metrica è definita come rapporto (V2 – V1) / (T2 – T1). AWR le raccoglie automaticamente. Frequenza della raccolta e retention dei dati, sono specificati in &lt;span style="font-family: Courier New;"&gt;DBA_HIST_WR_CONTROL&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;SELECT snap_interval, retention FROM dba_hist_wr_control;&lt;br /&gt;&lt;br /&gt;SNAP_INTERVAL&lt;br /&gt;-------------------------------------&lt;br /&gt;RETENTION&lt;br /&gt;-------------------------------------&lt;br /&gt;+00000 01:00:00.0&lt;br /&gt;+00007 00:00:00.0&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;(profondità di 7 giorni, con raccolta ogni ora) e la modifica è possibileattraverso la funzione &lt;span style="font-family: Courier New;"&gt;DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&lt;br /&gt;BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;dbms_workload_repository.modify_snapshot_settings(&lt;br /&gt;&amp;nbsp;&amp;nbsp;interval =&amp;gt; 60,&lt;br /&gt;&amp;nbsp;&amp;nbsp;retention =&amp;gt; 10*24*60&lt;br /&gt;&amp;nbsp;&amp;nbsp;);&lt;br /&gt;END;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Sono collezionate ogni minuto, storicizzate in memoria e quindi salvate nelle tabelle WRH$ (H=History) di AWR (il tablespace su cui risiedono è SYSAUX). Complessivamente, sono disponibili le seguenti  [3][5]:&lt;br /&gt;&lt;br /&gt;Table: Global&lt;br /&gt;&lt;table border="1" style="font-family: Courier New;"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;th&gt;VIEW/TABLE&lt;/th&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;GV$METRIC&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;GV$METRIC_HISTORY&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Table: Information &lt;br /&gt;&lt;table border="1" style="font-family: Courier New;"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;th&gt;VIEW/TABLE&lt;/th&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;GV$METRICGROUP&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;GV$METRICNAME&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;DBA_HIST_METRIC_NAME&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;WRH$_METRIC_NAME &lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Sono disponibili per [5]&lt;br /&gt;&lt;br /&gt;» System&lt;br /&gt;» Sessions&lt;br /&gt;» Services&lt;br /&gt;» Events&lt;br /&gt;» Files&lt;br /&gt;&lt;br /&gt;e raggruppate come di seguito:&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&lt;br /&gt;select GROUP_ID, GROUP_NAME from V$METRICGROUP order by GROUP_ID&lt;br /&gt;&lt;br /&gt;&amp;nbsp; GROUP_ID GROUP_NAME&lt;br /&gt;---------- -------------------------------------------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 Event Metrics&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 Event Class Metrics&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 System Metrics Long Duration&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 System Metrics Short Duration&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 Session Metrics Long Duration&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5 Session Metrics Short Duration&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6 Service Metrics&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7 File Metrics Long Duration&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9 Tablespace Metrics Long Duration&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10 Service Metrics (Short)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Ed in &lt;span style="font-family: Courier New;"&gt;V$METRICNAME.METRIC_UNIT&lt;/span&gt;, troviamo l'unità di misura in cui viene espressa quella particolare metrica. Sono espresse per&lt;br /&gt;&lt;br /&gt;» Valori assoluti&lt;br /&gt;» Percentuali&lt;br /&gt;» Per secondi e per transactioni&lt;br /&gt;&lt;br /&gt;Ad esempio:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;select group_id id, metric_name, metric_unit from v$metricname where group_id=1&lt;br /&gt;&lt;br /&gt;&amp;nbsp; ID METRIC_NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; METRIC_UNIT&lt;br /&gt;---- -------------------------------&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -----------&lt;br /&gt;&amp;nbsp;&amp;nbsp; 1 Total Wait Counts&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Waits&lt;br /&gt;&amp;nbsp;&amp;nbsp; 1 Total Time Waited&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CentiSeconds&lt;br /&gt;&amp;nbsp;&amp;nbsp; 1 Database Time Spent Waiting (%)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % (TimeWaited / DBTime)&lt;br /&gt;&amp;nbsp;&amp;nbsp; 1 Average Users Waiting Counts&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Users&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I valori degli utli 10 minuti sono visibili dalle GV$*, quelle degli utlimi 10+60 minuti dalle GV$*_HISTORY e quelle con retention superiore dalle DBA_HIST_* (le sottostanti tabelle sono le WRH$*). Le viste di sistema disponibili sono:&lt;br /&gt;&lt;br /&gt;Table: Events&lt;br /&gt;&lt;table border="1" style="font-family: Courier New;"&gt;&lt;tbody&gt;&lt;tr style="text-align: center;"&gt; &lt;th&gt;GROUP_ID&lt;/th&gt; &lt;th&gt;VIEW/TABLE&lt;/th&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;0&lt;/td&gt; &lt;td&gt;GV$EVENTMETRIC&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;1&lt;/td&gt; &lt;td&gt;GV$WAITCLASSMETRIC&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;GV$WAITCLASSMETRIC_HISTORY&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;WRH$_WAITCLASSMETRIC_HISTORY&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Table: System&lt;br /&gt;&lt;table border="1" style="font-family: Courier New;"&gt;&lt;tbody&gt;&lt;tr style="text-align: center;"&gt; &lt;th&gt;GROUP_ID&lt;/th&gt; &lt;th&gt;VIEW/TABLE&lt;/th&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;2/3&lt;/td&gt; &lt;td&gt;GV$SYSMETRIC&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;GV$SYSMETRIC_HISTORY&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;GV$SYSMETRIC_SUMMARY&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;DBA_HIST_SYSMETRIC_HISTORY&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;DBA_HIST_SYSMETRIC_SUMMARY&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;WRH$_SYSMETRIC_HISTORY&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;WRH$_SYSMETRIC_SUMMARY&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Table: Session&lt;br /&gt;&lt;table border="1" style="font-family: Courier New;"&gt;&lt;tbody&gt;&lt;tr style="text-align: center;"&gt; &lt;th&gt;GROUP_ID&lt;/th&gt; &lt;th&gt;VIEW/TABLE&lt;/th&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;4/5&lt;/td&gt; &lt;td&gt;V$SESSMETRIC&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;DBA_HIST_SESSMETRIC_HISTORY&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;WRH$_SESSMETRIC_HISTORY&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Table: Service&lt;br /&gt;&lt;table border="1" style="font-family: Courier New;"&gt;&lt;tbody&gt;&lt;tr style="text-align: center;"&gt; &lt;th&gt;GROUP_ID&lt;/th&gt; &lt;th&gt;VIEW/TABLE&lt;/th&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;6/10&lt;/td&gt; &lt;td&gt;GV$SERVICEMETRIC&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;GV$SERVICEMETRIC_HISTORY&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Table: Files&lt;br /&gt;&lt;table border="1" style="font-family: Courier New;"&gt;&lt;tbody&gt;&lt;tr style="text-align: center;"&gt; &lt;th&gt;GROUP_ID&lt;/th&gt; &lt;th&gt;VIEW/TABLE&lt;/th&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;7&lt;/td&gt; &lt;td&gt;GV$FILEMETRIC&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;GV$FILEMETRIC_HISTORY&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;DBA_HIST_FILEMETRIC_HISTORY&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;WRH$_FILEMETRIC_HISTORY&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Per il GROPU_ID 9 della V$METRICGROUP, non ho trovato associazioni. Suppongo, visto che si tratta di tablespace, che le corrispondenti metriche si potrebbero associare a quelle per "Files".&lt;br /&gt;&lt;br /&gt;&lt;table border="1" style="font-family: Courier New;"&gt;&lt;tbody&gt;&lt;tr style="text-align: center;"&gt; &lt;th&gt;GROUP_ID&lt;/th&gt; &lt;th&gt;VIEW/TABLE&lt;/th&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;9&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;[1] &lt;a href="http://www.toadworld.com/KNOWLEDGE/KnowledgeXpertforOracle/tabid/648/TopicID/CMI13/Default.aspx"&gt;Oracle Metrics&lt;/a&gt;&lt;br /&gt;[2] &lt;a href="http://www.globusz.com/ebooks/Oracle/00000014.htm"&gt;Database Metrics&lt;/a&gt;&lt;br /&gt;[3] &lt;a href="http://tutorial-pdf.tp.ac.id/bank/AWR.pdf"&gt;AUTOMATED WORKLOAD REPOSITORY&lt;/a&gt;&lt;br /&gt;[4] &lt;a href="http://www.toadworld.com/KNOWLEDGE/KnowledgeXpertforOracle/tabid/648/TopicID/CMI7/Default.aspx"&gt;AWR Metrics&lt;/a&gt;&lt;br /&gt;[5] &lt;a href="http://www.trivadis.com/uploads/tx_cabagdownloadarea/doag_04_AWR_02.pdf"&gt;Automatic Workload Repository&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Post update 2011/06/16&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-6992474033965712494?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/6992474033965712494/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=6992474033965712494&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/6992474033965712494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/6992474033965712494'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/06/metrics.html' title='Metrics'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-2388891847608495518</id><published>2011-06-13T21:51:00.000+02:00</published><updated>2011-06-15T15:48:30.535+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>puser</title><content type='html'>&lt;div&gt;Quali processo stanno utilizzando la porta del listener? Linux permette di rispondere a questa domanda utilizzando il comando &lt;a href="http://www.bufferoverflow.it/2010/11/28/gestione-avanzata-dei-processi-in-linux-fuser-e-lsof/"&gt;fuser&lt;/a&gt; con l'opzione "-n". Il programma che segue è scritto in perl ed è necessario avere i privilegi di accesso a tutte le sottodirectory di /proc. Per utilizzarlo basta lanciare “puser” seguito dal numero della porta da controllare. Ad esempio:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;#andrea&amp;gt; puser 1531&lt;br /&gt;1531: 2506 18359&lt;/div&gt;&lt;br /&gt;&lt;div style="color: red; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;#!/usr/bin/perl&lt;br /&gt;die "Usage: puser \n" if @ARGV[0] == 0;&lt;br /&gt;&lt;br /&gt;$ENV{'PORT'} = @ARGV[0];&lt;br /&gt;$shell_in = &amp;lt;&amp;lt;'IN'; echo "" &amp;gt; /tmp/checkPortTestPerl;&lt;br /&gt;&lt;br /&gt;for PROC in /proc/*; do&lt;br /&gt;&amp;nbsp; echo $PROC &amp;gt;&amp;gt; /tmp/checkPortTestPerl 2&amp;gt; /dev/null&lt;br /&gt;&amp;nbsp; pfiles -F $PROC | grep port |grep $PORT &amp;gt;&amp;gt; /tmp/checkPortTestPerl 2&amp;gt; /dev/null&lt;br /&gt;&lt;br /&gt;done 2&amp;gt; /dev/null&lt;br /&gt;&lt;br /&gt;IN&lt;br /&gt;&lt;br /&gt;$shell_out = `$shell_in`;&lt;br /&gt;open(FH, "&amp;lt; /tmp/checkPortTestPerl") or die "can't open /tmp/checkPortTestPerl: $!";&lt;br /&gt;&lt;br /&gt;$i=0;&lt;br /&gt;$lineprep=;&lt;br /&gt;&lt;br /&gt;for ($count=0; $row=; $count++) {&lt;br /&gt;&amp;nbsp; if ($row =~ m/@ARGV[0]/){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $lineprep =~ m#^/[a-z]+/([0-9]+)$#;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $process[$i]=$1;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $i++;&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; $lineprep=$row;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;print "@ARGV[0]: @process\n";&lt;br /&gt;unlink "/tmp/checkPortTestPerl";&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-2388891847608495518?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/2388891847608495518/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=2388891847608495518&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/2388891847608495518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/2388891847608495518'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/06/puser.html' title='puser'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-8136385790769433052</id><published>2011-06-13T21:25:00.003+02:00</published><updated>2011-06-16T16:50:45.886+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PL/SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Time Zone'/><category scheme='http://www.blogger.com/atom/ns#' term='Developer'/><title type='text'>Time Zone</title><content type='html'>Riporto questo &lt;a href="https://docs.google.com/viewer?a=v&amp;amp;pid=explorer&amp;amp;chrome=true&amp;amp;srcid=1CO7ckNTFCYiVUjavLGCnWJBIapCRFHMi0sKLecDqOsPi5lsPmAPWQ0G-Qpf4&amp;amp;hl=it"&gt;documento&lt;/a&gt; che scrissi nel 2005&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-8136385790769433052?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/8136385790769433052/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=8136385790769433052&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/8136385790769433052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/8136385790769433052'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/06/time-zone.html' title='Time Zone'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-1386580283456332697</id><published>2011-06-12T21:28:00.008+02:00</published><updated>2011-06-16T16:51:05.136+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='event'/><category scheme='http://www.blogger.com/atom/ns#' term='Administration'/><category scheme='http://www.blogger.com/atom/ns#' term='10053'/><title type='text'>set events 10053</title><content type='html'>Alcuni eventi come il 10053, hanno bisogno del privilegio esplicito di ALTER SESSION.&lt;br /&gt;&lt;br /&gt;* Creiamo innanzitutto un utente:&lt;br /&gt;&lt;br /&gt;&lt;div style="color: red; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;wedosas01.RAIDTRN(SYS)&amp;gt; create user pippo identified by pippo;&lt;br /&gt;User created.&lt;br /&gt;&lt;br /&gt;wedosas01.RAIDTRN(SYS)&amp;gt; grant connect to pippo;&lt;br /&gt;Grant succeeded.&lt;/div&gt;&lt;br /&gt;* Proviamo ad abilitare l'evento 10053&lt;br /&gt;&lt;br /&gt;&lt;div style="color: red; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;wedosas01.RAIDTRN(SYS)&amp;gt; conn pippo/pippo&lt;br /&gt;Connected.&lt;br /&gt;&lt;br /&gt;wedosas01.RAIDTRN(PIPPO)&amp;gt; alter session set events '10053 trace name context forever , level 1';&lt;br /&gt;&lt;br /&gt;ERROR:&lt;br /&gt;ORA-01031: insufficient privileges&lt;/div&gt;&lt;br /&gt;* Assegnamo allora esplicitamente il privilegio di ALTER SESSION...&lt;br /&gt;&lt;br /&gt;&lt;div style="color: red; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;wedosas01.RAIDTRN(PIPPO)&amp;gt; conn / as sysdba&lt;br /&gt;Connected.&lt;br /&gt;&lt;br /&gt;wedosas01.RAIDTRN(SYS)&amp;gt; grant alter session to pippo;&lt;br /&gt;Grant succeeded.&lt;/div&gt;&lt;br /&gt;* ...e riproviamo ad abilitarlo nuovamente&lt;br /&gt;&lt;br /&gt;&lt;div style="color: red; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;wedosas01.RAIDTRN(SYS)&amp;gt; conn pippo/pippo&lt;br /&gt;Connected.&lt;br /&gt;&lt;br /&gt;wedosas01.RAIDTRN(PIPPO)&amp;gt; alter session set events '10053 trace name context forever , level 1';&lt;br /&gt;Session altered.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-1386580283456332697?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/1386580283456332697/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=1386580283456332697&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/1386580283456332697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/1386580283456332697'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2011/06/set-events-10053.html' title='set events 10053'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-2334858734690313370</id><published>2008-10-24T12:48:00.015+02:00</published><updated>2011-06-15T17:48:41.662+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Opinione'/><title type='text'>Perfect!</title><content type='html'>&lt;div&gt;&lt;p&gt;Tre! Tre &amp;#232; il numero perfetto.&lt;/p&gt;&lt;p&gt;In 3 categorie, possiamo classificare i lock:&lt;/p&gt;&lt;p&gt;1. Lock di tipo applicativo&lt;br&gt;2. Latch sul Dizionario Dati&lt;br&gt;3. Latch sulle strutture dati di memoria&lt;/p&gt;&lt;p&gt;In 3 categorie possiamo schematizzare le operazioni fatte sulla Buffer Cache:&lt;/p&gt;&lt;p&gt;1. Ricerca (di un blocco in memoria)&lt;br&gt;2. Modifica/Sostituzione (del blocco ricercercato al punto 1)&lt;br&gt;3. Scrittura su disco (del blocco modificato al punto 2)&lt;/p&gt;&lt;p&gt;In 3 categorie possiamo raggruppare le informazioni raccolte dalle viste di sistema [Lewis:&lt;/p&gt;&lt;p&gt;1. Persone (v$sesstat, v$session_event, v$sess_time_model)&lt;br&gt;2. Risorse (v$filestat, v$segstat, v$latch, v$event_histogram)&lt;br&gt;3. Statement (v$sql, v$sqlstats)&lt;/p&gt;&lt;p&gt;come 3 sono i punti di vista da cui puoi guardare le problematiche:&lt;/p&gt;&lt;p&gt;1. Utente/Sistema&lt;br&gt;2. Storico&lt;br&gt;3. In tempo reale&lt;/p&gt;&lt;p&gt;In 3 categorie possiamo raggruppare come viene speso il tempo in Oracle:&lt;/p&gt;&lt;p&gt;1. Prentendo un latch (spinning o sleepling)&lt;br&gt;2. Mantenendo un latch (lavoro su CPU)&lt;br&gt;3. Rilasciare un latch (lavoro su CPU)&lt;/p&gt;&lt;p&gt;3 sono gli statement di modifica:&lt;/p&gt;&lt;p&gt;1. Insert&lt;br&gt;2. Update&lt;br&gt;3. Delete&lt;/p&gt;&lt;p&gt;3 sono le certificazioni:&lt;/p&gt;&lt;p&gt;1. OCA&lt;br&gt;2. OCP&lt;br&gt;3. OCM&lt;/p&gt;&lt;p&gt;Ed infine, 3 sono le leggi a cui un DBA deve sottostare.&lt;/p&gt;&lt;p&gt;Insomma se 3 &amp;#232; il numero perfetto e si adatta bene ad Oracle, vuoi vedere che sotto sotto.....&lt;/p&gt;&lt;p&gt;=================&lt;br&gt;Update - 04/12/2008&lt;br&gt;=================&lt;/p&gt;&lt;p&gt;3 sono le maggiori componenti del framework [OCA-CRS-01] per la gestione del db:&lt;/p&gt;&lt;p&gt;1. Istanza, che deve essere gestita&lt;br&gt;2. Listenser, che consente le connessioni al DB&lt;br&gt;3. Enterprise Manager, che consente una gestione centralizzata dei database&lt;/p&gt;&lt;p&gt;3 sono le cose che un bravo DBA deve saper utilizzare:&lt;br&gt;1. vi&lt;br&gt;2. SQL*Plus&lt;br&gt;3. RMAN&lt;/p&gt;&lt;p&gt;Sono 3 gli insiemi (di directories) [OCA-ALL-01] che lo standard OFA prevede siano utilizzati per facilitare la gestione del database:&lt;/p&gt;&lt;p&gt;1. Uno per la raccolta dei binari&lt;br&gt;2. Uno per la raccolta dei files di amministrazione, control files e redolog (archiviati)&lt;br&gt;3. Uno per la raccolta dei datafiles&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Riferimenti:&lt;br&gt;========&lt;br&gt;Conquering Oracle Latch Contention - &lt;a href="http://www.orapub.com/"&gt;http://www.orapub.com/&lt;/a&gt;&lt;br&gt;&lt;a href="http://www.jlcomp.demon.co.uk/trouble_shooting_i.html"&gt;How to do Trouble-Shooting &lt;/a&gt;- &lt;a href="http://www.jlcomp.demon.co.uk/"&gt;http://www.jlcomp.demon.co.uk/&lt;/a&gt;&lt;br&gt;[OCA-CRS-01] Oracle Database 10g: Administrator Workshop 1, Cap4&lt;br&gt;[OCA-ALL-01] Oracle Database 10g Certification All-in-One Exam Guide, Parte1, Cap2&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-2334858734690313370?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/2334858734690313370/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=2334858734690313370&amp;isPopup=true' title='3 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/2334858734690313370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/2334858734690313370'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2008/10/perfect.html' title='Perfect!'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-7508682666733511862</id><published>2008-10-14T12:53:00.030+02:00</published><updated>2008-10-25T07:27:36.708+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Architettura'/><title type='text'>Too Many Secrets: Introduzione</title><content type='html'>A grandi linee possiamo dividere un database in 2 parti distinte: quella su file system (che prende il nome di database) e quella in memoria: la SGA.&lt;br /&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5256986813454483762" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_-ti3vT-k_s8/SPSRp3TeATI/AAAAAAAAAto/37Wjo5WgiHI/s320/dbArchitet.jpg" border="0" /&gt;La SGA è a sua volta, divisa in 2: processi di background (pmon, smon, etc) e pools (di buffer) tra cui troviamo la Buffer Cache, lo Shared Pool ed il Log Buffer (esistono altre aree in SGA, ma per semplicità, le ometto) [cosmus01].&lt;/p&gt;&lt;p&gt;Alcune domande.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;La ricerca in Buffer Cache come avviene?&lt;/li&gt;&lt;li&gt;Ok, lo statement è nello Shared Pool, ma il suo piano di esecuzione dove lo trovo? Visto che "select * from dual" è diverso da "SELECT * FROM DUAL", dove trovo queste informazioni? Ma sono proprio statement diversi? In fondo a parte la differenza di capitalizzazione, sono proprio la stessa cosa.&lt;/li&gt;&lt;li&gt;Bhé si, le "entry di redo" sono scritte in Log Buffer, ma come fa Oracle ad essere sicuro che che la scrittura sia avvenuta?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Ciò che dobbiamo approfondire è quindi:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Buffer Cache&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Shared Pool&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Log Buffer&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;In realtà, esiste un punto 0 che va considerato e senza il quale non è possibile proseguire:&lt;br /&gt;&lt;ol start="0"&gt;&lt;li&gt;Latch&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;[cosmus01] Sul sito &lt;a href="http://www.kosmous.com/risorse/articolo.php?id=15"&gt;Kosmus&lt;/a&gt;, esiste un dettaglio sull'architettura di Oracle 9i. 10g modifica alcune cose aggiungendo ad esempio nuovi processi di backgroud. Tuttavia, tali modifiche non cambiano quanto detto.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-7508682666733511862?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/7508682666733511862/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=7508682666733511862&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/7508682666733511862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/7508682666733511862'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2008/10/too-many-secrets-introduzione.html' title='Too Many Secrets: Introduzione'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_-ti3vT-k_s8/SPSRp3TeATI/AAAAAAAAAto/37Wjo5WgiHI/s72-c/dbArchitet.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-9141817960566926226</id><published>2007-10-19T18:05:00.001+02:00</published><updated>2008-10-13T19:05:59.276+02:00</updated><title type='text'>Statspack, forse non tutti sanno che.....</title><content type='html'>&lt;div style="FONT-FAMILY: trebuchet ms; TEXT-ALIGN: justify"&gt;Conosco qualche DBA che dello Statspack ne ha fatto una ragione di vita, come se da esso si potessero individuare e risolvere tutti i problemi di performance legati ad un'istanza.&lt;/div&gt;&lt;div style="FONT-FAMILY: trebuchet ms"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="FONT-FAMILY: trebuchet ms; TEXT-ALIGN: justify"&gt;Premetto di essere il primo ad utilizzarlo per capire cosa c'è che non va studiando l'output che esso genera. Tuttavia, a mio avviso, Statspack deve essere un punto di partenza e non uno di arrivo.&lt;/div&gt;&lt;div style="FONT-FAMILY: trebuchet ms"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="FONT-FAMILY: trebuchet ms; TEXT-ALIGN: justify"&gt;Forse sarebbe più corretto dire che ne determinare problemi di performance, l'output più che guardarlo, andrebbe letto.&lt;/div&gt;&lt;div style="FONT-FAMILY: trebuchet ms"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="FONT-FAMILY: trebuchet ms"&gt;Spero di riuscire a chiarire il concetto.&lt;/div&gt;&lt;br /&gt;&lt;div style="FONT-FAMILY: trebuchet ms"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="FONT-FAMILY: trebuchet ms"&gt;1. Aggregazione dei dati&lt;/div&gt;&lt;div style="FONT-FAMILY: trebuchet ms; TEXT-ALIGN: justify"&gt;La funzionalità di base di Statspack è quella di fare due istatntanee dell'istanza in due momenti diversi; quindi si calcolano le differenze ed ne viene mostrato il risultato.&lt;br /&gt;&lt;/div&gt;&lt;div style="FONT-FAMILY: trebuchet ms"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="FONT-FAMILY: trebuchet ms; TEXT-ALIGN: justify"&gt;Questo però comporta un'aggregazione di dati. Purtroppo da un aggregato non è possibile estrarre un particolare.&lt;/div&gt;&lt;br /&gt;&lt;div style="FONT-FAMILY: trebuchet ms; TEXT-ALIGN: justify"&gt;Faccio un esempio. Se ho 100 palline che pesano 100 grammi, dico che ogni pallina pesa 1 grammo. Ma se di queste 100, 99 fossero nere ed 1 bianca, posso ancora dire che una sola pesa 1 grammo? In questo caso, l'informazione aggragata che tutte insieme pesano 100g non è sufficiente: per determinare il peso di ogni singola pallina devo necessariamente pesarle (i).&lt;/div&gt;&lt;div style="FONT-FAMILY: trebuchet ms"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="FONT-FAMILY: trebuchet ms; TEXT-ALIGN: justify"&gt;In Oracle succede una cosa analoga. L'output di Statspack mi dice che ci sono stati problemi di latching, di hard parsing, etc, ma non mi dice chi ne è stato la causa.&lt;/div&gt;&lt;br /&gt;&lt;div style="FONT-FAMILY: trebuchet ms"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="FONT-FAMILY: trebuchet ms"&gt;2. Heisemberg&lt;/div&gt;&lt;div style="FONT-FAMILY: trebuchet ms; TEXT-ALIGN: justify"&gt;Statspack è scritto in PL/SQL: quando vengono calcolati gli snapshot, vengono fatte query sul dizionario dati. In questo modo, secondo il Principio di Indeterminazione di Heisemberg, Statspak (l'osservatore) influenza l'istanza (l'osservato). Oracle 10g, cambia punto di vista: l'RDBMS stesso popola la base dati di AWR (ii).&lt;br /&gt;&lt;/div&gt;&lt;div style="FONT-FAMILY: trebuchet ms"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="FONT-FAMILY: trebuchet ms"&gt;&lt;/div&gt;&lt;span style="font-family:trebuchet ms;"&gt;3. Metriche inesatte&lt;/span&gt;&lt;br /&gt;&lt;div style="FONT-FAMILY: trebuchet ms; TEXT-ALIGN: justify"&gt;Fino alla versione 10gR1, le informazioni statistiche di uno statement non vengono aggiornate finché questo non si è concluso (iv). O meglio, la sessione aggiorna le statistiche di session e statement alla fine di ogni "database call" (v). Questo vuol dire che la macchina potrebbe star soffrendo a causa di latch contention, ma il nostro snapshot e relativo report non lo segnalano. 10gR2, ha modificato questo comportamento (v), aggiornando le statistiche ogni 5 sec.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="FONT-FAMILY: trebuchet ms"&gt;&lt;/div&gt;&lt;span style="font-family:trebuchet ms;"&gt;4. Statement fantasma&lt;/span&gt;&lt;br /&gt;&lt;div style="FONT-FAMILY: trebuchet ms; TEXT-ALIGN: justify"&gt;Se il sistema è particolarmente sotto carico, potrebbe succedere che uno statement venga espulso dalla SQL AREA. In questo caso non sarà presente nello snapshot e quindi nel report (commento in v) (vi)&lt;br /&gt;&lt;/div&gt;&lt;div style="FONT-FAMILY: trebuchet ms"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="FONT-FAMILY: trebuchet ms"&gt;(i) &lt;a href="http://www.hotsos.com/oop.html"&gt;Optimizing Oracle Performance&lt;/a&gt;&lt;/div&gt;&lt;span style="font-family:trebuchet ms;"&gt;(ii) &lt;/span&gt;&lt;a style="FONT-FAMILY: trebuchet ms" href="http://www.oracle-10g-buch.de/Whitepapers/db/SMHealth.pdf"&gt;THE SELF-MANAGING DATABASE&lt;/a&gt;&lt;br /&gt;&lt;div style="FONT-FAMILY: trebuchet ms"&gt;(iv) &lt;a href="http://optimaldba.blogspot.com/2007/03/why-you-should-ignore-sql-metrics-in.html"&gt;Why you should ignore SQL metrics in Statspack&lt;/a&gt;&lt;/div&gt;&lt;span style="font-family:trebuchet ms;"&gt;(v) &lt;/span&gt;&lt;a style="FONT-FAMILY: trebuchet ms" href="http://jonathanlewis.wordpress.com/2007/01/08/questions-questions/"&gt;Scoping&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;(vi) &lt;/span&gt;&lt;a style="FONT-FAMILY: trebuchet ms" href="http://optimaldba.blogspot.com/2006/12/problem-with-statspack.html"&gt;A problem with Statspack&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-9141817960566926226?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/9141817960566926226/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=9141817960566926226&amp;isPopup=true' title='3 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/9141817960566926226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/9141817960566926226'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2007/10/statspack-forse-non-tutti-sanno-che.html' title='Statspack, forse non tutti sanno che.....'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-1281395710058123349</id><published>2007-09-23T10:35:00.000+02:00</published><updated>2007-09-24T18:09:12.768+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Corso'/><title type='text'>1 giorno con Joze Senegacnik</title><content type='html'>&lt;p align="justify"&gt;Devo essere sincero. Joze Senegacnik mi era del tutto sconosciuto. Forse anche perché da quando seguo più lo sviluppo che l'esercizio, ho perso un pò di visione su quello che è la tematica che riguardante strettamente il DBA.&lt;br /&gt;&lt;br /&gt;Cercando in rete però, mi sono reso conto che Senegacnik deve essere uno in gamba, vista la sua presenza su siti di un certo calibro (hotsos, oaktable). E se guardiamo le sue &lt;a href="http://www.dbprof.com/publications.html"&gt;pubblicazioni&lt;/a&gt; (non ancora scaricabili), il quadro risulta completo.&lt;br /&gt;&lt;br /&gt;Ero quindi molto curioso di partecipare al seminario, anche se mi chiedevo come in un solo giorno (il 13 Settembre 2007 a Milano) potesse parlare degli internals di Oracle.&lt;br /&gt;&lt;br /&gt;Se confrontato con i seminari di Kyte e Lewis, quello di Senegacnik, è stato di tutt'altra pasta. Mentre i primi due hanno forinto tools e metodologie, quest'ultimo si è limitato a fare una panoramica delle strutture interne di Oracle. Del resto in 7 ore di corso, non poteva fare altrimenti.&lt;br /&gt;&lt;br /&gt;Dal mio punto di vista, il seminario è stato un riassunto di quanto avevo studiato fino ad allora prorpio: gestione della buffer cache, degli undo etc. La cosa interessante che non avevo mai visto è stata la sua discussione su RAC.&lt;br /&gt;&lt;br /&gt;C'è da dire comunque che tutto il materiale su cui si è basato è disponibile in rete sul sito di &lt;a href="http://julian.dyke.users.btopenworld.com/com/"&gt;Julian Dyke&lt;/a&gt;, nella sezione &lt;a href="http://julian.dyke.users.btopenworld.com/com/Presentations/Presentations.html"&gt;Presentations&lt;/a&gt;. Consiglio gli interessati di leggersi attentamente i documenti che vi si trovano.&lt;br /&gt;&lt;br /&gt;Ma vediamo gli argomenti del seminario: &lt;/p&gt;&lt;ol&gt;&lt;li&gt;Buffer Cache&lt;/li&gt;&lt;li&gt;RAC and Cache Fusion, RAC specific wait events&lt;/li&gt;&lt;li&gt;SGA and Library Cache&lt;/li&gt;&lt;li&gt;Undo and Redo&lt;/li&gt;&lt;li&gt;SQL Work Area Memory Management (PGA)&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Come dicevo, quanto detto durante il corso, lo si può trovare sul sito di &lt;a href="http://julian.dyke.users.btopenworld.com/com/"&gt;Julian Dyke&lt;/a&gt;. Quello che mi è sembrato interreante sono le seguenti cose:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Sia in una istanza stand alone che in RAC, esiste una sola versione "corretente" del blocco. Nel caso di RAC, però, ciò significa che se più sessioni eseguono un UPDATE sullo stesso blocco, questo deve girare tra le istanze.&lt;/li&gt;&lt;li&gt;Ogni istanza è MASTER per un pool di blocchi. Questo vuol dire che se un'applicazione è connessa ad una istanza I1 che non è master per il blocco richierichiesto, allora i) l'istanza I1, chiederà chi è il master per quel blocco; 2) si farà inviare il blocco in questione; 3) fornirà al client che ne ha fatto chiesta, la versione consistente del blocco.&lt;/li&gt;&lt;li&gt;Se un'istanza è lenta a rispondere, tipicamente perché le cpu sono sature, allora viene fatto lo shutdown dell'istanza stessa.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-1281395710058123349?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/1281395710058123349/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=1281395710058123349&amp;isPopup=true' title='2 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/1281395710058123349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/1281395710058123349'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2007/09/1-giorno-con-joze-senegacnik.html' title='1 giorno con Joze Senegacnik'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-5066666701233767631</id><published>2007-06-16T19:37:00.002+02:00</published><updated>2007-10-19T18:05:37.395+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Opinione'/><title type='text'>Le tre leggi</title><content type='html'>&lt;span style="font-family:times new roman;"&gt;To be or not to be (a DBA), that is the question&lt;br /&gt;- Amleto&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:times new roman;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;p align="justify"&gt;&lt;span style="font-family:times new roman;"&gt;Qualcuno potrebbe pensare che scomodare addirittura Shakespeare per essere o meno un DBA sia un po eccessivo. Eccentirco forse, ma eccessivo no. Vediamo il perché.&lt;br /&gt;&lt;br /&gt;NON essere un DBA è facile. Conosco qualcuno che si spaccia come tale, ma è ben lontano dall'esserlo. Piuttosto, essere un DBA, ha a che fare con il carattere. Ma a questo ci arriveremo.&lt;br /&gt;&lt;br /&gt;I DBA, esistono a diversi livelli:&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;div align="justify"&gt;&lt;ul&gt;&lt;li&gt;Chi si occupa di Installazione, Configurazione e Monitoring dell'RDBMS&lt;/li&gt;&lt;li&gt;Chi si occupa di Backup &amp; Recovery (quì intendo anche Replicazione, Standby DB, etc)&lt;/li&gt;&lt;li&gt;Chi si occupa di HA (RAC ad esempio)&lt;/li&gt;&lt;li&gt;Chi si occupa di Performance and Tuning&lt;/li&gt;&lt;li&gt;Chi supporta lo sviluppo (DBA Applicativo)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p align="justify"&gt;&lt;span style="font-family:times new roman;"&gt;Ovviamente esistono anche altri livelli di esistenza, ma mi premeva far capire la complessità dell'universo DBA.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:times new roman;"&gt;A tutto questo va aggiunto che un DBA deve conoscere:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:times new roman;"&gt;il Sistema Operativo, per affrontare problematiche si installazione, performance, tuning, backup&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:times new roman;"&gt;SQL &amp;amp; PL/SQL, per poter fare interrogazioni mirate sul db sia per il tuining che per il monitoring. Senza tener conto del supporto che deve fornire in qui casi in cui il codice è scritto male &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:times new roman;"&gt;linguaggi di scripting come bash, perl e tcl/tk, per il monitoring ed il reporting&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:times new roman;"&gt;linguaggi di programmazione come C/C++ e Java, per affrontare problematiche di installazione, di configurazione, supporto allo sviluppo&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;span style="font-family:times new roman;"&gt;non è detto che debba conoscere tutto e bene, ma il "conoscere" sicuramente aiuta.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:times new roman;"&gt;Cosa fondamentale poi, è che il DBA deve saper ascoltare. Deve saper interpretare le esigenze degli utilizzatori del DB. Deve saper capire quali sono i limiti degli utenti e fornire ove necessario valide alternative. E' per questo, ad esempio, che risulta fondamentale la conoscenza dell'SQL e del PL/SQL.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:times new roman;"&gt;Il DBA deve avere quindi del carattere per poter sapientemente argomentare pregi e difetti di una soluzione. Il DBA deve aver carattere nel saper riconoscere i propri limiti. Il DBA deve aver carattere nell'ammettere che altri ne sanno più di lui. E soprattutto il DBA deve aver carattere dimostrandosi umile.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:times new roman;"&gt;Quindi: si può fare il DBA per necessità, lo si puòfare per prestigio o solo per lavoro. Ma soprattutto lo si può fare per passione. La differenza? La differenza è il risultato finale: chi lo fa per passione ha fame di informazioni ed è sempre alla ricerca di nuove sfide da superare.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:Times New Roman;"&gt;Un DBA cerca di conoscere le strutture fisiche e logiche degli schemi dei database che gestisce e cerca di comprendere le applicazione che li utilizzano: indaga sui perché di eventuali problemi e fornisce, come detto, valide alternative. Badate bene che "valide alternative" non vuol dire creare un indice o lanciare le statistiche: ci sono già tools che fanno questo. Tom Kyte in un suo interessantissimo &lt;a href="http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:313416745628#4261984581040"&gt;thread&lt;/a&gt;, spiega bene l'idea (riporto parte della discussione):&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;em&gt;&lt;span style="font-family:times new roman;"&gt;Tools apply a set of rule, heuristics (like the things I have in my head after doing it for 15 years)... I can look at a query, and a plan -- and with a KNOWLEDGE of the data (statistics to the software, even more knowledge to a human) -- I can generally "make the query better". Not always, but many times. That is the software does, it applies a series of rules to the queries and suggests (based on rules of thumb) enhancements to the schema or the query that would make it better. I've yet to see any software take a query though and say things like "well, if you remove that non-necessary outer join, use the analytic functions instead it'll run much faster". I see them say "add this index" sort of advice (very basic).&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:times new roman;"&gt;Ma non solo. Un DBA deve preoccuparsi anche e soprattutto della sicurezza dei dati. Spesso si tende a confondere tale termine. Credo che il modo giusto di vedere la cosa sia nel dire che "sicurezza" racchiude in se tre concetti distinti:&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="FONT-FAMILY: times new roman" align="justify"&gt;&lt;ul&gt;&lt;li&gt;Protezione&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Affidabilità&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Disponibilità&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p align="justify"&gt;&lt;span style="font-family:times new roman;"&gt;La sola mancaza di protezione implica l'assenza delle componenti di affidabilità e disponibilità. Se il dato non è protetto allora possiamo essere certi che prima o poi le modifiche fatte alla base dati andranno perse perché non esiste nesun criterio di garanzia sulle operazioni svolte.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:times new roman;"&gt;Supponiamo ad esempio di avere uno schema, acceduto dall'applicazione per inviare sms (l'appicazione di produzione), dallo sviluppo per fare i test, dall'esercizio per la manutenzione e dal monitoring per controllare eventuali problemi. In questo caso la probabilità che un danno accidentale si verifichi risulta proporzionale alla grandezza della base dati e dal numero di utilizzatori della stessa.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:Times New Roman;"&gt;Che dire: un gran casino.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:times new roman;"&gt;Ho allora immaginato 3 leggi a cui un DBA deve attenersi. 3 leggi che devono governare la vita di un DB. Un po come le 3 leggi della robotica di &lt;/span&gt;&lt;a href="http://it.wikipedia.org/wiki/Isaac_Asimov"&gt;&lt;span style="font-family:times new roman;"&gt;Asimov&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:times new roman;"&gt; (prima Shakespeare, adesso Asimov: chi mi ferma più):&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;strong&gt;Prima Legge&lt;/strong&gt;: Il DBA deve &lt;/span&gt;&lt;span style="font-family:Times New Roman;"&gt;garantire la sicurezza dei dati. Deve cioè garantire che siano rispettati i vincoli di Protezione, Affidabilità e Disponibilità;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;strong&gt;Seconda Legge&lt;/strong&gt;: Ogni utilizzatore del db deve modellare la propria base dati secondo le esigenze di performance della sua applicazione, purché queste non contrastino con la Prima Legge;&lt;/span&gt;&lt;span style="font-family:Times New Roman;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;strong&gt;Terza Legge&lt;/strong&gt;: Il DBA deve fornire ogni tipo di supporto agli utilizzatori del database, deve raccogliere le loro esigenze e suggerire valide alternative purché venga rispettata la Seconda Legge;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;span style="font-family:Times New Roman;"&gt;Vorrei concludere citando Stéphane Faroult, autore di &lt;a href="http://www.oreilly.com/catalog/artofsql/"&gt;The Art of SQL&lt;/a&gt;, edito da O'Reilly. Il libro si rifà, come si evince dal titolo, all'Arte della Guerra di Sun Tzu (questa non ve l'aspettavate, vero?). Nell'introduzione del libro, Faroult scrive:&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:times new roman;"&gt;&lt;em&gt;[...] I realized that the problem of teaching developers how to use database efficiently was similar to the problem of teaching officers how to conduct a war. You need knowledge, you need skills, and you need talent. Talent cannot be taught, but it can be nurtured.&lt;/em&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:times new roman;"&gt;Direi che questa frase calzi perfettamenteanche  ai DBA, oltre che agli sviluppatori.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-5066666701233767631?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/5066666701233767631/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=5066666701233767631&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/5066666701233767631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/5066666701233767631'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2007/06/le-tre-leggi.html' title='Le tre leggi'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-5993340293710289261</id><published>2007-06-01T19:51:00.000+02:00</published><updated>2007-06-01T20:15:04.396+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><title type='text'>Il Costo è Tempo?</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a href="http://www.jlcomp.demon.co.uk/"&gt;Jonathan Lewis&lt;/a&gt; nel suo libro Cost-Based Oracle Fundamentals, nel Cap1 pagina 4 dice:&lt;br /&gt;&lt;br /&gt;According to the CPU costing model:&lt;br /&gt;   Cost = (&lt;br /&gt;               #SRds * sreadtim +&lt;br /&gt;               #MRds * mreadtim +&lt;br /&gt;               #CPUCycles / cpuspeed&lt;br /&gt;               ) / sreadtim&lt;br /&gt;&lt;br /&gt;where&lt;br /&gt;&lt;br /&gt;   #SRDs - number of single block reads&lt;br /&gt;   #MRDs - number of multi block reads&lt;br /&gt;   #CPUCycles - number of CPU Cycles&lt;br /&gt;   sreadtim - single block read time&lt;br /&gt;   mreadtim - multi block read time&lt;br /&gt;   cpuspeed - CPU cycles per second&lt;br /&gt;&lt;br /&gt;Translated, this says the following:&lt;br /&gt;&lt;br /&gt;The cost is the time spent on single-block reads, plus the time spent on multiblock reads, plus the CPU time required, all divided by the time it takes to do a single-block read. Which means the cost is the total predicted execution time for the statement, expressed in units of the single-block read time.&lt;br /&gt;&lt;br /&gt;L’affermazione che il “costo è il tempo” viene ribadito anche sul suo sito, dove aggiunge note al suo libro. La sezione &lt;a href="http://www.jlcomp.demon.co.uk/cbo_book/ch_01.html"&gt; “Cost is time (30th Dec 2005)”&lt;/a&gt;, termina infatti con: “Cost is Time – but the units are a bit funny”.&lt;br /&gt;&lt;br /&gt;In realtà, come poi Lewis stesso ammette, le cose sono un pò diverse da come sembrano. In un &lt;a href="http://jonathanlewis.wordpress.com/2006/11/15/dbms_xplan-pt2/"&gt;thread&lt;/a&gt; del suo &lt;a href="http://jonathanlewis.wordpress.com/"&gt;Blog&lt;/a&gt; infatti, si corregge con la seguente affermazione:&lt;br /&gt;&lt;br /&gt;[…] I should have said “resource consumption” rather than cost […]&lt;br /&gt;&lt;br /&gt;Di fatto, non possiamo utilizzare il costo di uno statement per dire se è buono o meno. Il motivo di tale affermazione è il risultato di un &lt;a href="http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:313416745628"&gt;thread&lt;/a&gt; sul sito di Kyte che devo dire essere estremamente interessante.&lt;br /&gt;&lt;br /&gt;Il mio personale consiglio è ovviamente di leggerlo. Qui riporto la risposta che &lt;a href="http://www.centrexcc.com/"&gt;Wolfgang Breitling&lt;/a&gt; in quel thread da ad una  domanda fatta da un lettore:&lt;br /&gt;&lt;br /&gt;To those who cling to the illusion that the "cost" of an explained sql is in any way related to the performance, read Tom's lips: "It is not".&lt;br /&gt;The cost is used during the parse to pick one plan among all the ones considered (the one with the lowest "cost"). Once it has served that purpose and a plan is chosen, it is meaningless. In particular, it can NOT be compared to the cost of a another explain. If everything is the same between the two explain, the resulting plans and their costs will be the same. If they are not, then something is different and you can not compare the results anymore.&lt;br /&gt;In pre-Oracle9, the "cost" is roughly equal to the estimated number of logical reads (db blocks needed to find the answer). That estimate of the number of blocks to be visited can be different from reality for a number of reasons, only a few of which could be considered bugs. A lot of the reasons for wrong estimates are due to data distribution and dependencies. That is what Tom refers to a human knowledge about the data which goes far beyond what the optimizer can discern from the statistics. For a presentation I am giving at the Hotsos Performance Symposium (IOUG wasn't interested) I have prepared testcases where the same query on tables with virtually identical statistics returns vastly different numbers of rows to show that it is impossible for the optimizer to come up with accurate estimates and therefore the best plan in all cases.&lt;br /&gt;&lt;br /&gt;Cost and execution time are NOT related. There are plenty of examples that prove that they are not. The comparison of costs can only be made by the optimizer while it is parsing a sql and is evaluating different access paths. Once an access path is chosen it is invalid to compare its cost number to that of a different plan and draw any conclusion from it.&lt;br /&gt;When parsing a sql the optimizer, in addition to using the gathered statistics - table as well as system in 9i - the optimizer has to make many assumptions about the data (uniform distribution for example in the absence of histogram data) and if the reality differs from the assumption the plan that came out with the lowest cost based on the assumptions can very well be far inferior to a plan that has a higher cost number (based on the assumptions) but is better suited to the reality and hence performs better. It is a rather far stretch to call the inability of the optimizer to accurately estimate certain characteristics of the data in the database, given limited information, a bug.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-5993340293710289261?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/5993340293710289261/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=5993340293710289261&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/5993340293710289261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/5993340293710289261'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2007/06/il-costo-tempo.html' title='Il Costo è Tempo?'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-8760986323897237538</id><published>2007-02-08T13:55:00.000+01:00</published><updated>2007-06-01T20:16:16.497+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Corso'/><title type='text'>...e 2 giorni con Jonathan Lewis</title><content type='html'>&lt;p&gt;Prima di qualsiasi commento, mi preme fare una precisazione. Per chi ha un "buon" grado conoscenza ed un "ottimo" livello di preparazione, i giorni 6 e 7 Febbraio non hanno rappresentato nulla di nuovo (se ricordo bene, il valore 7 a scuola era l'equivalente di discreto, poi c'era buono (8), ottimo (9) ed infine eccelente (10)).&lt;br /&gt;&lt;br /&gt;Ho ritenuto doveroso tale precisazione per fugare il dubbio se questi due giorni fossero stati o meno utili. Se poi consideriamo il privilegio di aver potuto assistere dal vivo ad una lezione tenuta da Jonathan Lewis ( e farsi autografare il libro)....... :)&lt;br /&gt;&lt;br /&gt;Bene. Il seminario ha coperto diversi argomenti, tutti legati all'ottimizzatore. La cosa interessante è che Lewis osserva il modo (Oracle) proprio dal punto di vista del CBO. In quest'ottica, allora gli argomenti trattati hanno tutti un filo conduttore:&lt;br /&gt;&lt;br /&gt;Giorno1:&lt;br /&gt;====== &lt;ol&gt;&lt;li&gt;Aritmetica di base del COSTO&lt;/li&gt;&lt;li&gt;Meccanismi di JOIN&lt;/li&gt;&lt;li&gt;Selettività ed HINTS&lt;/li&gt;&lt;li&gt;Come e dove trovare i piani di esecuzione&lt;/li&gt;&lt;li&gt;Come leggere i piani di esecuzione&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Giorno2:&lt;br /&gt;====== &lt;/p&gt;&lt;ol&gt;&lt;li&gt;Problemi con i piani di esecuzione&lt;/li&gt;&lt;li&gt;Uso degli indici&lt;/li&gt;&lt;li&gt;Mito degli indici&lt;/li&gt;&lt;li&gt;Descrivere i dati&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;p&gt;Le informazioni che ha dato sono state davvero tante ed il mio unico rammarico è di non essere andato lì già preparato: diciamo che se avessi letto e studiato il suo &lt;a href="http://www.jlcomp.demon.co.uk/cbo_book/ind_book.html#Addenda"&gt;libro&lt;/a&gt;, probabilmente avrei non solo apprezzato di più il suo intervento, ma sarei riuscito a catturare tutti i suggerimenti durante le due giornate.&lt;/p&gt;&lt;p&gt;In effetti se proprio dovessi muovere una critica al seminario sarebbe quella di essere stato troppo breve se rapportato alla quantità di cose discusse. Come dire: troppo, in troppo poco tempo. Ci sono state infatti cose che non sono riuscito a capire appieno ed altre che mi sono del tutto sfuggite. Ad esempio, non sono riuscito a capire esattamente l'algoritmo di HASH JOIN, anche se ne ho carpito il senso, ma mi è completamente sfuggito il funzionamento del piano di esecuzione di tipo BITMAP.&lt;/p&gt;&lt;p&gt;Lasciando però da parte le cose che mi sono sfuggite (diciamo il 20%), i restanti argomenti li ho trovati davvero utili.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Non è vero ad esempio che l'ottimizzatore, nel caso in cui deve restituire meno del 5% delle righe, utilizza un indice. Ci sono diversi fattori che influenzano il CBO per la scelta del piano di esecuzione: il parametro DB_FILE_MULTIBLOCK_READ_COUNT, il CLUSTERING FACTOR (CF, da adesso in poi), i parametri OPTIMIZER_INDEX_COST_ADJ (OICA) e OPTIMIZER_INDEX_CACHING (OIC), ad esempio.&lt;/li&gt;&lt;li&gt;Kyte nei suoi libri indica il fattore di clustering come "grado di &lt;u&gt;disordine&lt;/u&gt; di un indice". Lewis ha dato un'altra definizione: "rappresenta la &lt;u&gt;qualità&lt;/u&gt; di un indice". Ha inoltre tenuto a precisare che, nel caso in cui il CF approccia al numero di righe, non vuol dire che sia sbagliato. Il fatto è che se cerchiamo valori singoli in una tabella, allora il CF non ha rilevanza: lo ha nel caso in cui, per accedere alla tabella, facciamo un FULL SCAN dell'indice.&lt;/li&gt;&lt;li&gt;Le statistiche di sistema (quelle raccolte con dbms_stats.gather_system_stats) misurano le performance di un sistema, visto che valutano la velocità di un processore (Mega operazioni al secondo), valutano la lettura media di una lettura singola e di una lettura multi-blocco. In ogni caso ha detto di fare attenzione ad i numeri che ne derivano. Il fatto è che talvolta le statistiche risultano falsate perché i venditori di hardware ottimizzano i loro sistemi per velocizzare l'accesso al disco rendendo ad esempio più veloce la lettura dalla cache (vedi EMC, ad esempio).&lt;/li&gt;&lt;li&gt;Le statistiche di sistema (quelle raccolte con dbms_stats.gather_system_stats) hanno introdotto un nuovo modo di calcolare il costo. In Oracle 8i, c'era solo l'I/O cost, mentre a partire da Oracle 9i, è stato introdotto il CPU cost. Prima di Oracle 9i, cioè, c'erano due presupposti sbagliati:&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;1. L'ottimizzatore assumeva che tutte le letture avvenivano da disco&lt;/ul&gt;&lt;ul&gt;2. Non venivano considerati i tempi di accesso dell'indice e di un FULL SCAN: una lettura singolo-blocco, cioè, pesava esattamente come una lettura multi-blocco&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;ul&gt;Per tale motivo sono stati forniti i parametri OICA e OIC&lt;/ul&gt;&lt;p&gt;E queste sono solo alcuni degli argomenti trattati.  Immagginate 2 giorni pieni zeppi di cose da apprendere e soprattutto utili al fine di capire come l'ottimizzatore lavora e su come valutare l'impatto dei parametri messi a disposizione dall'RDBMS per far fare al CBO esattamente ciò che noi vogliamo.&lt;/p&gt;&lt;p&gt;Famiglia e lavoro permettendo, cercherò di pubblicare gli appunti che ho preso durante il seminario. La cosa come potete immaginare non è semplice visto che devo ripercorrere tutte le slide del corso e adattare quello che ho scritto con ciò che lui a detto. Cmq, ci proverò.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-8760986323897237538?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/8760986323897237538/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=8760986323897237538&amp;isPopup=true' title='5 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/8760986323897237538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/8760986323897237538'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2007/01/e-2-giorni-con-jonathan-lewis.html' title='...e 2 giorni con Jonathan Lewis'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-8543114674380664252</id><published>2007-01-05T16:11:00.000+01:00</published><updated>2007-01-05T17:39:41.353+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><title type='text'>Heisenberg Uncertainty Principle</title><content type='html'>Dopo qualche anno (ormai quasi 7) che lavoro con Oracle, devo ammettere che lo studio di questo database è diventato soprattutto una passione. L'acquisto dei libri tecnici  a partire dal 1999, è sempre stato mirato all'approfondimento di Oracle stesso. E non  parlo solo di libri specifici (Backup &amp;amp; Recovery, Amministrazione, Performance and Tuning (sopratutto), PL/SQL), ma anche di Sistema Operativi (Unix like), File System e Programmazione C. Ormai ho perso il conto dei soldi spesi.&lt;br /&gt;&lt;br /&gt;Ma si sà: gli hobby costano.&lt;br /&gt;&lt;br /&gt;Tuttavia, non tutti condividono il mio stesso entusiasmo per Oracle. Qualche giorno fa ho scritto una email a colui che mi ha insegnato le basi di Oracle.&lt;br /&gt;&lt;br /&gt;Il suo punto di vista è molto diverso: sostiene che Oracle non è l'unico database e sulla piazza si trovano db che costano meno e sono ugualmente funzionali. Sinceramente non saprei come dargli torto, ma credo che il primo amore non si scordi mai......&lt;br /&gt;&lt;br /&gt;--- cut here ---&lt;br /&gt;&lt;br /&gt;E’ vero che non conosco altri db se non Oracle, ma devi ammettere che le funzionalità implementate sono valide.&lt;br /&gt;&lt;br /&gt;Potrei decantarti le lodi di questo database (la 10g inizia una nuova vita), ma so che saresti in grado di confutarne ogni caratteristica. Ti inoltro allora un &lt;a href="http://www.oracle.com/technology/products/manageability/database/pdf/twp03/TWP_40169.pdf"&gt;&lt;br /&gt;documento&lt;/a&gt; (1). Non so se lo hai già visto o letto, ma data la sua particolarità credo sia importante sottolineare lo sforzo fatto degli ingegneri per la realizzazione del software.&lt;br /&gt;&lt;br /&gt;Non voglio anticiparti nulla, ti dico solo che non è la prima volta che il principio di intederminazione di Heisenberg viene tirato in ballo. Non sono un’esperto, ma una mia idea me la sono fatta.&lt;br /&gt;&lt;br /&gt;La prima volta che ho visto porsi il problema di come effettuare misure corrette per individuare problemi di performance è stato nel libro &lt;a href="http://www.oreilly.com/catalog/optoraclep/"&gt;Optimizing Oracle Performance&lt;/a&gt; (libro davvero incredibile. Scritto da Cary Millsap e Jeff Holt ed edito da O’Reilly). In un piccolo riquadro spiegano come sia difficle effettuare misure precise anche in sistemi di calcolo come i computer.&lt;br /&gt;&lt;br /&gt;Il fatto poi di dover utilizzare software di terze parti, comporta l’alterazione del database stesso, per cui molte delle misure potrebbero essere imprecise.&lt;br /&gt;&lt;br /&gt;In questo senso Oracle 10g ha fatto un passo avanti. A mio avviso ha cambiato la filosofia di approccio all’analisi: l’osservatore non influenza più l’osservto, ma è l’osservabile stesso a fornire le proprie informazioni.&lt;br /&gt;&lt;br /&gt;--- cut here ---&lt;br /&gt;&lt;br /&gt;(1) &lt;a href="http://www.oracle.com/technology/products/manageability/database/pdf/ow03p/40169p.pdf"&gt;Qui&lt;/a&gt; il pdf in formato slide.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-8543114674380664252?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/8543114674380664252/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=8543114674380664252&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/8543114674380664252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/8543114674380664252'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2007/01/dopo-qualche-anno-ormai-quasi-7-che.html' title='Heisenberg Uncertainty Principle'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-116630097086328765</id><published>2006-12-19T14:45:00.001+01:00</published><updated>2011-08-09T09:58:38.443+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><title type='text'>Bed execution plan (Cattivi piani di esecuzione)</title><content type='html'>Le cose dette durante il &lt;a href="http://orasal.blogspot.com/2006/11/2-giorni-con-tom-kyte.html"&gt;seminario&lt;/a&gt;,  di Tom Kyte sono state davvero incredibili ed alcune mi hanno colpito più di altre. Ad esempio: "quando Oracle sbaglia a calcolare la cardinalità delle righe allora sceglie un piano di esecuzione sbagliato". Coinciso e chiaro. Ovviamente una simile affermazione ha stimolato la mia curiosità e la sete di conoscenza ha fatto il resto.  Cercando in rete, ho trovato sul blog di Kyte stesso un &lt;a href="http://tkyte.blogspot.com/2006/03/hotsos-symposium-2006-day-2.html"&gt;commento&lt;/a&gt; all'Hotsos Symposium 2006. Qui ne riporto un estratto:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;That last one was Wolfgang Breitling?s talk. I really enjoyed that one for the simple reason it is a method I follow myself. The crux of the matter is ? you have a query that should perform better, you know it can. But the optimizer has generated the wrong plan (you know it did). Rather than just hinting it and fixing that one, sole query ? you can try to figure out "why" (and hence fix an entire class of poorly performing queries in the process, instead of tuning by hand every single one). The premise: &lt;span style="font-weight: bold;"&gt;bad query plans result from incorrect cardinality estimates&lt;/span&gt;. If you want to "tune a query", look to the estimated cardinality values (explain plan or v$sql_plan) and compare them to the actuals (row source operation in a TKPROF report, v$sql_plan_statistics). His approach, one I share, is to do that and then try to come up with a way to "fix it" ? to get the optimizer to achieve the correct cardinality. It might be optimizer dynamic sampling, it might be setting/gathering more detailed statistics ? but it will fix not only that particular query but an entire class of queries that might suffer from the same issue. I really liked this one.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Da ciò possiamo trarre alcune interessanti ed utili informazioni:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Per tunare una query dobbiamo valutarne il piano di esecuzione e la cardinalità delle righe risultanti&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Per farlo abbiamo a disposizione (a partire da Oracle 9i) due nuove viste: V$SQL_PLAN e V$SQL_PLAN_STATISTICS. Queste, contengono il piano di esecuzione e le relative statistiche dello statement quando è stato eseguito. E la cosa è molto importante. Infatti, quando affrontiamo problemi di tuning, non sappiamo in che modo l'ottimizzatore ha valutato una query nell'istante in cui l'ha eseguita. Utilizzando queste due viste di sistema invece possiamo valutare le scelte del CBO.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;In linea di massima, per fissare una classe di query che soffrono di uno stesso problema è sufficiente raccogliere le statistiche.&lt;/li&gt;&lt;/ul&gt;Il collezionamento delle statistiche è cruciale: statistiche mancanti o vecchie confondono l'ottimizzatore e spesso portano alla scelta sbagliata del piano di esecuzione: occorre valutare ad esempio se è il caso o meno di utilizzare gli histogrammi affinché la cardinalità stimata sia la più corretta possibile.&lt;br /&gt;&lt;br /&gt;A partire dalla versione 10, l'ottimizatore RBO è stato desupportato. Per taleo motivo, le statistiche vengono collezionate in automatico. Il parametro OPTIMIZER_DYNAMIC_SAMPLING influenza il modo in cui il CBO si comporta. Di seguito riporto i valori di tale parametro per le versioni a partire da Oracle 9iR1 (non esiste un corrispettivo per release precedenti), mentre consiglio il seguente &lt;a href="http://www.oracleadvice.com/10g/10g_optimizer.htm"&gt;link &lt;/a&gt;per maggiori informazioni.&lt;br /&gt;&lt;table border="2" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align="center"&gt;OPTIMIZER_FEATURES_ENABLE&lt;/td&gt;&lt;td align="center"&gt;OPTIMIZER_DYNAMIC_SAMPLING&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center"&gt;&gt;= 10.0.0&lt;/td&gt;&lt;td align="center"&gt;2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center"&gt;9.2.0&lt;/td&gt;&lt;td align="center"&gt;1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center"&gt;9.0.1&lt;/td&gt;&lt;td align="center"&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Relativamente all'ottimmzatore CBO, il mio suggerimento è per due siti: i loro autori sono dei veri eseperti in materia ed i loro documenti sono dei veri casi di studio.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.centrexcc.com/"&gt;Wolfgang Breitling&lt;/a&gt;&lt;br /&gt;Gli articoli che ha scritto sono davvero interessanti. Uno di questi, &lt;a href="http://www.centrexcc.com/A%20Look%20under%20the%20Hood%20of%20CBO%20-%20the%2010053%20Event.pdf"&gt;A Look under the Hood of CBO: The 10053 Event&lt;/a&gt;, descrive come interpretare le decisioni del CBO.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.jlcomp.demon.co.uk/"&gt;Jonathan   Lewis&lt;/a&gt;&lt;br /&gt;A parte che l'intero sito è una miniera di informazioni su tutto ciò che riguarda Oracle, l'autore ha srcitto un libro, &lt;a href="http://www.jlcomp.demon.co.uk/cbo_book/ind_book.html#addenda"&gt;Cost Based Oracle: Fundamentals&lt;/a&gt;, incentrato tutto sul CBO.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-116630097086328765?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/116630097086328765/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=116630097086328765&amp;isPopup=true' title='15 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/116630097086328765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/116630097086328765'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2006/12/cattivi-piani-di-esecuzione.html' title='Bed execution plan (Cattivi piani di esecuzione)'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-116414189342498039</id><published>2006-11-21T21:33:00.000+01:00</published><updated>2007-02-11T18:05:40.602+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Corso'/><title type='text'>2 giorni con Tom Kyte...</title><content type='html'>Credo fosse estate o giù di lì quando lessi che Tom Kyte sarebbe venuto a Roma per tenere il suo primo seminario in Italia. Ricordo che come un bambino, ero tutto emozionato all'idea di poter seguire personalmente l'autore di ben 3 libri incredibili (tutti acquistati ovviamente).&lt;br /&gt;&lt;br /&gt;Dovevo assolutamente partecipare. Ed infatti mossi mari e monti per cercare di non mancare l'appuntamento. Come a scuola, seduto nell'ultima fila ero armato di auricolari per ascoltare la traduzione in italiano (già, purtroppo ho questa mancanza: l'inglese): non mi sono perso una sola parola di quanto il buon Tom ha detto.&lt;br /&gt;&lt;br /&gt;Ma ovviamente dovevo fare qualcosa. Dovevo segnare quel giorno e così alla fine della seconda giornata ho fatto 3 domande.&lt;br /&gt;&lt;br /&gt;* Domanda. Come capire se soffro di "Write Consistency" (un effetto collaterale della "lettura consistente" che Oracle mette a disposizione)?&lt;br /&gt;* Risposta. Non esistono particolari tecniche che consentono di individuare se la nostra applicazione è sotto l'effeto del "Write Consistency". L'unico suggerimeto è quello di lanciare una prima volta lo statement dopo aver messo sotto trace la nostra sessione e leggere i corrispondenti valori di "query" e "current" dall'output del file prodotto. Lanciare quindi una seconda volta lo stesso statement e ricontrollare il file di trace prodotto. Se siamo nelle condizioni di "Write Consistency", allora vedremo il valore "current" molto maggiore rispetto al caso precedente. E dovremmo basarci solo sul valore di "current" e non quello di "query", perché i blocchi letti in modo consistente in questo contensto non fanno testo (di fatto possiamo dire che il 95% delle letture sul db avviene dagli undo segment)&lt;br /&gt;&lt;br /&gt;* Domanda. La seconda invece è stata relativa ad una cosa che avevo letto sul libro "Effective Oracle by Design". Non so se ricordate, ma ad un certo punto Kyte dimostra che spostare il codice di un trigger in una stored procedure (meglio in un package ovviamente) porta ad un guadagno in performance. Non dice tuttavia il perché di questo miglioramento. Quale occasione migliore della sua stessa presenza per avere una risposta?&lt;br /&gt;* Risposta. Ebbene, ciò che succede è che Oracle esegue il cache del codice PL/SQL delle stored procedure (e quindi dei package) ma non di quello dei trigger. Spostando quindi la logica fuori dal trigger, consentiamo al db di effettuare meno parsing, guadagnando quindi in performance. Questo spostamento del codice fuori dal trigger non sarà più necessario a partire dalla versione 11g in quanto Oracale effetuerà anche il caching del codice PL/SQL di un trigger.&lt;br /&gt;&lt;br /&gt;* Domanda. Ed infine una cosa che dovevo assolutamente sapere: quando uscirà il suo prossimo libro.&lt;br /&gt;* Risposta. Purtroppo sembra che non lo abbia ancora finito di scrivere. Ci tocca quindi aspettare.&lt;br /&gt;&lt;br /&gt;Ma non basta. Mi sono fatto firmare anche gli ultimi due libri (se riuscivo a trovare quello su 8i, mi sarei fatto autografare anche quello) che aveva scritto.&lt;br /&gt;&lt;br /&gt;Insomma un evento eccezionale a cui non potevo assolutissimamente mancare. Che figata. Pensate, da anni seguo ciò che scrive sul suo &lt;a href="http://asktom.oracle.com"&gt;sito&lt;/a&gt; e leggo gli aricoli che scrive su &lt;a href="http://www.oracle.com/technology/oramag/oracle/current.html"&gt;Oracle Magazine&lt;/a&gt; ed adesso addirittura ho seguito un suo seminario.&lt;br /&gt;&lt;br /&gt;Wow.&lt;br /&gt;&lt;br /&gt;Un commento sul corso. La struttura è stata di tipo standard:&lt;br /&gt;&lt;br /&gt;Giorno 1&lt;br /&gt;========&lt;br /&gt;1. The Tools I Use&lt;br /&gt;2. All About Binds&lt;br /&gt;3. SQL Techniques&lt;br /&gt;4. Read and Write Consistency&lt;br /&gt;&lt;br /&gt;Giorno 2&lt;br /&gt;========&lt;br /&gt;1. Effective Schema&lt;br /&gt;2. 10gR1&lt;br /&gt;3. 10gR2&lt;br /&gt;&lt;br /&gt;Come già detto è stato molto bello e direi anche emozionante (almeno per me). La seconda giornata però, mi duole ammetterlo, ha disatteso le mie aspettative. Si è parlato fondamentalmente delle nuove caratteristiche della 10g: utile sicuramente, ma un corso di "New Features" lo possono sostenere tutti. Lui, Tom, poteva puntare in alto anche il secondo giorno ed invece si è limitato a descriverci cosa è stato introdotto nell'ultima release del db e come sfruttare tale caratteristiche.&lt;br /&gt;&lt;br /&gt;...e adesso posso dire....io c'ero!!!!! Il prossimo appuntamento, se ci riesco, è il 6-7 Febbraio 2006 a Milano per ascoltare e seguire un'altro mostro sacro: Jonathan Lewis. &lt;a href="http://www.jlcomp.demon.co.uk/seminar.html"&gt;Quì&lt;/a&gt; il link dell'agenda.&lt;br /&gt;&lt;br /&gt;Il materiale, slide e codice di esempio, lo si trova sul suo sito nella sezione "Files": il titolo è &lt;a href="http://asktom.oracle.com/pls/ask/z?p_url=download_file%3Fp_file%3D7004992901947467617&amp;p_cat=Denmark_Italy.zip&amp;amp;p_company=10"&gt;Denmark_Italy.zip&lt;/a&gt;. Spero presto di scrivere presto un resoconto di queste due indimenticabili ed incredibili giornate sul mio sito &lt;a href="http://www.orsal.com"&gt;web&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-116414189342498039?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/116414189342498039/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=116414189342498039&amp;isPopup=true' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/116414189342498039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/116414189342498039'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2006/11/2-giorni-con-tom-kyte.html' title='2 giorni con Tom Kyte...'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27589819.post-114803410994137086</id><published>2006-08-02T14:00:00.000+02:00</published><updated>2007-10-19T18:05:37.396+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Opinione'/><title type='text'>L'evoluzione</title><content type='html'>Un &lt;a href="http://www.oaktable.net/getFile/114"&gt;articolo&lt;/a&gt; molto interessante su &lt;a href="http://www.oaktable.net/main.jsp"&gt;OakTable&lt;/a&gt; descrive come &lt;a href="http://www.oracle.com"&gt;Oracle&lt;/a&gt; si sia evoluto a partire dalla sua prima  versione (V2.3).&lt;br /&gt;&lt;br /&gt;Il sottoscritto ha visto tuttavia solo le ultime modifiche e devo dire che se guardo indietro, la vecchia 8.1.5 mi sembra davvero un dinosauro. Lavoro ancora con la 8i (aggiornata a 8.1.7.4) e sento la mancaza di molte delle caratteristiche presenti in 9i come le EXTERNAL TABLES.&lt;br /&gt;&lt;br /&gt;Anche se ormai sono diversi anni che non lavoro più come DBA, ho seguito la crescita del db sempre dal punto di vista dell'amministratore, ed effettivamente i cambiamenti sono stati sostanziali. L'idea che mi sono fatto è che così come la 8i ha rappresentato un salto generazionale rispetto ad oracle 7.3 ed 8, la 10g lo è stato per 8i e 9i.&lt;br /&gt;&lt;br /&gt;Studiando quali sono state le modifiche introdotte con l'ultima release del db mi sono reso conto come il tema "Performance &amp; Tuning" abbia subito un radicale e profondo cambiamento: a partire da 10g credo si possa dire che sia cambiata la filosofia di approccio.&lt;br /&gt;&lt;br /&gt;Tutto è cominciato da &lt;a href="http://www.oraperf.com/download.php/yapp_anjo_kolk.pdf"&gt;YAPP&lt;/a&gt; &lt;br /&gt;il documento scritto da Anjo Kolk, che di fatto fornisce uno strumento su come affrontare i problemi di performance. Diventa allora famosa l'espressione&lt;br /&gt;&lt;br /&gt;Response Time = Service Time + Wait Time&lt;br /&gt;&lt;br /&gt;in cui l'obiettivo è cercare di ridurre il tempo di risposta. (Su tale tema, Cary Millsap e Jeff Holt hanno scritto un &lt;a href="http://www.oreilly.com/catalog/optoraclep/index.html"&gt;libro&lt;/a&gt; davvero bello). Con 8i, Oracle introduce statspack, che con l'aiuto del &lt;a href="http://www.oraperf.com"&gt;sito&lt;/a&gt; di Kolk, diventa uno strumento davvero utile per individuare i problemi di performance. Con 9i, Oracle subisce una spinta in avanti non indifferente. Dapprima viene introdotto il timing in microsecondi e  riportato il timing in V$SQL e poi, in 9iR2, statspack si modifica riportando la statistica "CPU Time" e la dicitura "Top Wait Events" diventa "Top Timed Events", ad indicare come sempre più l'obbiettivo di analisi sia orientato nel cercare di ridurre il tempo di risposta.&lt;br /&gt;&lt;br /&gt;E poi arriva Oracle 10g. Viene introdotto AWR che di fatto è uno statspack direttamente dentro il kernel dell'rdbms. C'è ASH, che permette di capire per sommi capi, i potenziali problemi. Ma soprattutto conosciamo ADDM, l'inteliggenza che ci aiuta a capire dove sono i problemi nel db. Sostanzialmente adesso se vogliamo sapere dove il db langue, basta tirare giù un report di ADDM per capire dove dobbiamo indirizzare i nostri sforzi. Ma non solo. ADDM suggerise anche che fare.&lt;br /&gt;&lt;br /&gt;WOW.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27589819-114803410994137086?l=orasal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://orasal.blogspot.com/feeds/114803410994137086/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27589819&amp;postID=114803410994137086&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/114803410994137086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27589819/posts/default/114803410994137086'/><link rel='alternate' type='text/html' href='http://orasal.blogspot.com/2006/08/levoluzione.html' title='L&apos;evoluzione'/><author><name>Andrea Salzano</name><uri>http://www.blogger.com/profile/07699475917994685383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
