<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.7.2" -->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <atom:link href="https://djplattconsulting.yolasite.com/blog.rss" rel="self" type="application/rss+xml" />
        <title>blog</title>
        <description>blog</description>
        <link>https://djplattconsulting.yolasite.com/blog.php</link>
        <lastBuildDate>Sat, 13 Jun 2026 05:06:19 +0100</lastBuildDate>
        <generator>FeedCreator 1.7.2</generator>
        <item>
            <title>CPU bound queries</title>
            <link>https://djplattconsulting.yolasite.com/blog/cpu-bound-queries</link>
            <description>&lt;I&gt;&lt;B&gt;This can be used to find queries that use CPU heavily.&amp;nbsp; It starts by determining a baseline and then identifies those queries that use more CPU than the baseline * an arbitrary multiplier.&amp;nbsp; If you want to use this in a balanced RAC environment change the references to v$sqlarea to gv$sqlarea.&amp;nbsp; Functions are used to return topCPU and user to the mainline.&lt;BR&gt;&lt;/B&gt;&lt;/I&gt;&lt;BR&gt;SET SERVEROUTPUT ON SIZE 1000000&lt;BR&gt;&lt;BR&gt;DECLARE&lt;BR&gt;&lt;BR&gt;topCPUkount&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NUMBER;&lt;BR&gt;multiplier&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NUMBER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; := .60;&lt;BR&gt;&lt;BR&gt;CURSOR cpuCursor (cKount&amp;nbsp; NUMBER) IS&lt;BR&gt;&amp;nbsp; SELECT *&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM v$sqlarea&lt;BR&gt;&amp;nbsp;&amp;nbsp; WHERE cpu_time &amp;gt; cKount;&lt;BR&gt;&lt;BR&gt;FUNCTION topCPU RETURN NUMBER IS&lt;BR&gt;num NUMBER;&lt;BR&gt;BEGIN&lt;BR&gt;&amp;nbsp; SELECT MAX(cpu_time)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO num&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM v$sqlarea;&lt;BR&gt;&amp;nbsp; RETURN num;&lt;BR&gt;EXCEPTION&lt;BR&gt;&amp;nbsp; WHEN OTHERS THEN&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbms_output.put_line(SQLERRM);&lt;BR&gt;END;&lt;BR&gt;&lt;BR&gt;FUNCTION getUser(uid&amp;nbsp;&amp;nbsp;&amp;nbsp; NUMBER)&amp;nbsp; RETURN VARCHAR2 IS&lt;BR&gt;str VARCHAR2(30);&lt;BR&gt;BEGIN&lt;BR&gt;&amp;nbsp; SELECT username&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO str&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM dba_users&lt;BR&gt;&amp;nbsp;&amp;nbsp; WHERE user_id = uid;&lt;BR&gt;&amp;nbsp; RETURN str;&lt;BR&gt;EXCEPTION&lt;BR&gt;&amp;nbsp; WHEN OTHERS THEN&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbms_output.put_line(SQLERRM);&lt;BR&gt;END;&lt;BR&gt;&lt;BR&gt;BEGIN&lt;BR&gt;&amp;nbsp; topCPUkount := topCPU;&lt;BR&gt;&amp;nbsp; dbms_output.put_line('Top CPU Count = '||topCPUkount);&lt;BR&gt;&amp;nbsp; FOR i IN cpuCursor (topCPUkount * multiplier)&amp;nbsp; LOOP&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbms_output.put_line('--------');&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbms_output.put_line('Last Active = '||TO_CHAR(i.last_active_time,'YYYY-MM-DD HH:MI'));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbms_output.put_line(getUser(i.parsing_user_id));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbms_output.put_line(i.sql_text);&lt;BR&gt;&amp;nbsp; END LOOP;&lt;BR&gt;&amp;nbsp; &lt;BR&gt;EXCEPTION&lt;BR&gt;&amp;nbsp; WHEN OTHERS THEN&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbms_output.put_line(SQLERRM);&lt;BR&gt;END;&lt;BR&gt;</description>
            <pubDate>Tue, 15 Jan 2013 23:38:31 +0100</pubDate>
        </item>
        <item>
            <title>Check for Locked objects</title>
            <link>https://djplattconsulting.yolasite.com/blog/check-for-locked-objects</link>
            <description>&lt;i&gt;&lt;b&gt;A handy script to check for locked objects in a database.&lt;/b&gt;&lt;/i&gt;&lt;br&gt;&lt;br&gt;SET SERVEROUTPUT ON SIZE 1000000&lt;br&gt;&lt;br&gt;DECLARE&lt;br&gt;&lt;br&gt;kount&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NUMBER&amp;nbsp;&amp;nbsp; := 0;&lt;br&gt;objectName dba_objects.object_name%TYPE;&lt;br&gt;objectType dba_objects.object_type%TYPE;&lt;br&gt;schemaOwner dba_objects.owner%TYPE;&lt;br&gt;&lt;br&gt;CURSOR lock_cursor IS&lt;br&gt;&amp;nbsp; SELECT *&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM gv$locked_object;&lt;br&gt;&lt;br&gt;BEGIN&lt;br&gt;&amp;nbsp; FOR i IN lock_cursor LOOP&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; kount := kount + 1;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT owner,object_name,object_type&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO schemaOwner,objectName,objectType&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM dba_objects&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE object_id = i.object_id;&lt;br&gt;&amp;nbsp;&amp;nbsp; dbms_output.put_line(i.inst_id||'&amp;nbsp;&amp;nbsp;&amp;nbsp; '||RPAD(schemaOwner,20)||' ' || objectName ||' '||objectType);&lt;br&gt;&amp;nbsp;END LOOP;&lt;br&gt;&amp;nbsp;&amp;nbsp; dbms_output.put_line('Locked Object Count = '||kount);&lt;br&gt;EXCEPTION&lt;br&gt;&amp;nbsp; WHEN OTHERS THEN&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbms_output.put_line(SQLERRM);&lt;br&gt;END;&lt;br&gt;/&lt;br&gt;</description>
            <pubDate>Mon, 16 May 2011 13:13:44 +0100</pubDate>
        </item>
        <item>
            <title>Check Oracle Tablespace Size</title>
            <link>https://djplattconsulting.yolasite.com/blog/check-oracle-tablespace-size</link>
            <description>&lt;i&gt;&lt;b&gt;A useful script for checking the size of tablespaces&lt;/b&gt;&lt;/i&gt;&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-size: 13px;&quot; tag=&quot;span&quot; class=&quot;yui-tag-span yui-tag&quot;&gt;SET PAGESIZE 100&lt;/span&gt;&lt;br style=&quot;font-family: yui-tmp;&quot;&gt;&lt;br style=&quot;font-family: yui-tmp;&quot;&gt;&lt;span style=&quot;font-size: 13px;&quot; tag=&quot;span&quot; class=&quot;yui-tag-span yui-tag&quot;&gt;COL &quot;Tablespace&quot; FOR a22&lt;/span&gt;&lt;br style=&quot;font-family: yui-tmp;&quot;&gt;&lt;span style=&quot;font-size: 13px;&quot; tag=&quot;span&quot; class=&quot;yui-tag-span yui-tag&quot;&gt;COL &quot;Used MB&quot; FOR 99,999,999&lt;/span&gt;&lt;br style=&quot;font-family: yui-tmp;&quot;&gt;&lt;span style=&quot;font-size: 13px;&quot; tag=&quot;span&quot; class=&quot;yui-tag-span yui-tag&quot;&gt;COL &quot;Free MB&quot; FOR 99,999,999&lt;/span&gt;&lt;br style=&quot;font-family: yui-tmp;&quot;&gt;&lt;span style=&quot;font-size: 13px;&quot; tag=&quot;span&quot; class=&quot;yui-tag-span yui-tag&quot;&gt;COL &quot;Total MB&quot; FOR 99,999,999&lt;/span&gt;&lt;br style=&quot;font-family: yui-tmp;&quot;&gt;&lt;br style=&quot;font-family: yui-tmp;&quot;&gt;&lt;span style=&quot;font-size: 13px;&quot; tag=&quot;span&quot; class=&quot;yui-tag-span yui-tag&quot;&gt;SELECT df.tablespace_name &quot;Tablespace&quot;,&lt;/span&gt;&lt;br style=&quot;font-family: yui-tmp;&quot;&gt;&lt;span style=&quot;font-size: 13px;&quot; tag=&quot;span&quot; class=&quot;yui-tag-span yui-tag&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; totalusedspace &quot;Used MB&quot;, &lt;/span&gt;&lt;br style=&quot;font-family: yui-tmp;&quot;&gt;&lt;span style=&quot;font-size: 13px;&quot; tag=&quot;span&quot; class=&quot;yui-tag-span yui-tag&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (df.totalspace - tu.totalusedspace) &quot;Free MB&quot;,&lt;/span&gt;&lt;br style=&quot;font-family: yui-tmp;&quot;&gt;&lt;span style=&quot;font-size: 13px;&quot; tag=&quot;span&quot; class=&quot;yui-tag-span yui-tag&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; df.totalspace &quot;Total MB&quot;,&lt;/span&gt;&lt;br style=&quot;font-family: yui-tmp;&quot;&gt;&lt;span style=&quot;font-size: 13px;&quot; tag=&quot;span&quot; class=&quot;yui-tag-span yui-tag&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; round(100 * ( (df.totalspace - tu.totalusedspace)/ df.totalspace)) &quot;Pct. Free&quot;&lt;/span&gt;&lt;br style=&quot;font-family: yui-tmp;&quot;&gt;&lt;span style=&quot;font-size: 13px;&quot; tag=&quot;span&quot; class=&quot;yui-tag-span yui-tag&quot;&gt;&amp;nbsp; FROM&lt;/span&gt;&lt;br style=&quot;font-family: yui-tmp;&quot;&gt;&lt;span style=&quot;font-size: 13px;&quot; tag=&quot;span&quot; class=&quot;yui-tag-span yui-tag&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SELECT tablespace_name,&lt;/span&gt;&lt;br style=&quot;font-family: yui-tmp;&quot;&gt;&lt;span style=&quot;font-size: 13px;&quot; tag=&quot;span&quot; class=&quot;yui-tag-span yui-tag&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; round(sum(bytes) / 1048576) TotalSpace&lt;/span&gt;&lt;br style=&quot;font-family: yui-tmp;&quot;&gt;&lt;span style=&quot;font-size: 13px;&quot; tag=&quot;span&quot; class=&quot;yui-tag-span yui-tag&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM dba_data_files&lt;/span&gt;&lt;br style=&quot;font-family: yui-tmp;&quot;&gt;&lt;span style=&quot;font-size: 13px;&quot; tag=&quot;span&quot; class=&quot;yui-tag-span yui-tag&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GROUP BY tablespace_name) df,&lt;/span&gt;&lt;br style=&quot;font-family: yui-tmp;&quot;&gt;&lt;span style=&quot;font-size: 13px;&quot; tag=&quot;span&quot; class=&quot;yui-tag-span yui-tag&quot;&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; (select round(sum(bytes)/(1024*1024)) totalusedspace, tablespace_name&lt;/span&gt;&lt;br style=&quot;font-family: yui-tmp;&quot;&gt;&lt;span style=&quot;font-size: 13px;&quot; tag=&quot;span&quot; class=&quot;yui-tag-span yui-tag&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM dba_segments&lt;/span&gt;&lt;br style=&quot;font-family: yui-tmp;&quot;&gt;&lt;span style=&quot;font-size: 13px;&quot; tag=&quot;span&quot; class=&quot;yui-tag-span yui-tag&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GROUP BY tablespace_name) tu&lt;/span&gt;&lt;br style=&quot;font-family: yui-tmp;&quot;&gt;&lt;span style=&quot;font-size: 13px;&quot; tag=&quot;span&quot; class=&quot;yui-tag-span yui-tag&quot;&gt;&amp;nbsp;WHERE df.tablespace_name = tu.tablespace_name &lt;/span&gt;&lt;br style=&quot;font-family: yui-tmp;&quot;&gt;&lt;span style=&quot;font-size: 13px;&quot; tag=&quot;span&quot; class=&quot;yui-tag-span yui-tag&quot;&gt;&amp;nbsp; ORDER BY df.tablespace_name&lt;/span&gt;&lt;br style=&quot;font-family: yui-tmp;&quot;&gt;&lt;br&gt;</description>
            <pubDate>Mon, 16 May 2011 12:49:50 +0100</pubDate>
        </item>
    </channel>
</rss>
