<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>partitions &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/partitions/</link>
	<description>Feed of posts on WordPress.com tagged "partitions"</description>
	<pubDate>Mon, 30 Nov 2009 00:40:28 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[NTFS OR FAT 32 ?]]></title>
<link>http://500myway.wordpress.com/2009/11/27/ntfs-or-fat-32/</link>
<pubDate>Fri, 27 Nov 2009 21:33:12 +0000</pubDate>
<dc:creator>Ravi Sharma</dc:creator>
<guid>http://500myway.wordpress.com/2009/11/27/ntfs-or-fat-32/</guid>
<description><![CDATA[Hello Friends. One of the most common question that one can ask during formatting hard disk drive is]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Hello Friends.</p>
<p>One of the most common question that one can ask during formatting hard disk drive is about the partition format. &#8220;Which partition format to use out of NTFS and FAT32 , isn&#8217;t it?&#8221;</p>
<p>For many of you this question remains unsolved.So, let&#8217;s try to solve this problem right now. Truel speaking  there’s no hard and fast rule to format our hard disk drive. But files systems NTFS and FAT 32 have certain advantages. Example NTFS is more reliable in terms of security and provide more flexibility to the system , Whereas in  some system configurations FAT32 is<br />
a master choice.Also if you are using windows 98 its advisable to go with FAT32 System because Windows 95/98/Me is unable to deal with NTFS Format.</p>
<p>Now let&#8217;s talk about Security. Using NTFS volume,its easier to restrict access to files and folders by using permissions option but on a FAT or FAT32 drive, anyone with physical access to your computer can access any files stored on that drive that i am sure you will never want if the document is secret or important.</p>
<p>DISK Error&#8230;&#8230;. &#8230;.. &#8230;&#8230;</p>
<p>You might have seen Disk error check during the start of your system. NTFS volumes have ability to recover from disk errors more readily as compare to your FAT/FAT32 drive. Hence Windows XP repair file system errors automatically when the system is restarted (in case of NTFS).  On the other hand  FAT and FAT32 drives are more prone to disk related errors.</p>
<p>Partition Size <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> o you know  the maximum partition size for a FAT32 drive created by Windows XP can only be upto 32 GB whereas a single NTFS volume can carry 16,384 GB (16<br />
terabytes) and also there is a good scope if you want to expand storage on existing drive letters. Interestingly you need not to take  back up, repartition, reformat or  restore in doing  so.</p>
<a name="pd_a_2311107"></a><div class="PDS_Poll" id="PDI_container2311107" style="display:inline-block;"></div><script type="text/javascript" language="javascript" charset="utf-8" src="http://static.polldaddy.com/p/2311107.js"></script>
		<noscript>
		<a href="http://answers.polldaddy.com/poll/2311107/">View This Poll</a><br/><span style="font-size:10px;"><a href="http://answers.polldaddy.com">answers</a></span>
		</noscript>
<p>&#160;</p>
<p>Best of luck</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Assisting Partition Exclusion - Partitions for Performance]]></title>
<link>http://mwidlake.wordpress.com/2009/11/23/assisting-partition-exclusion-partitions-for-performance/</link>
<pubDate>Mon, 23 Nov 2009 19:37:36 +0000</pubDate>
<dc:creator>mwidlake</dc:creator>
<guid>http://mwidlake.wordpress.com/2009/11/23/assisting-partition-exclusion-partitions-for-performance/</guid>
<description><![CDATA[Partitions are often used to help increase the performance of SQL select activity via the concept of]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Partitions are often used to help increase the performance of SQL select activity via the concept of partition exclusion &#8211; the CBO will be able to identify which of the partitions could hold the data of interest and ignore the others. This is their main benefit from a SQL Select performance perspective.</p>
<p>The problem is, the partitioning key is not always included in your SQL statements.</p>
<p>I discussed this potential negative impact of partitioning on SQL select performance in <a href="http://mwidlake.wordpress.com/2009/10/29/">this post</a> and <a href="http://mwidlake.wordpress.com/2009/11/05/">this one also.</a> I did not give any proof then, so the first half of this post provides that.</p>
<p>As an example, I have created a table with 45 partitions, partitioned on the column <strong>ID</strong>, an ascending numeric primary key (traditionally sourced from a sequence). There is an index on the ID column, locally partitioned. The table also has a column <strong>CRE_DATETIME</strong>, which is the date the record was created. This column is also indexed with a locally partitioned index.</p>
<pre class="brush: sql;">NAME                           VALUE
------------------------------ -------------
compatible                     10.2.0.3.0
cpu_count                      8
db_block_size                  8192
db_file_multiblock_read_count  16
optimizer_mode                 ALL_ROWS
sga_target                     0
sort_area_size                 65536

create table test_p3
(id           number(10) not null
,cre_datetime date not null
,status        number(1) not null
,num_1         number(4) not null -- random 20
,num_2         number(4) -- random 500
,num_3         number(5) -- cycle smoothly
,num_4         number(5) -- Random 10000
,vc_1          varchar2(10)
,vc_2          varchar2(10)
,vc_pad        varchar2(2000))
tablespace users
partition by range (id)
(partition id_01k values less than (1000)
tablespace users
,partition id_02k values less than (2000)
tablespace users
,partition id_03k values less than (3000)
tablespace users
...
,partition id_45k values less than (45000)
tablespace users
--
,partition id_max values less than (maxvalue)
tablespace users
)
/
select table_name,partitioning_type p_type
,partition_count pt_count
from dba_part_tables
where owner=user and table_name = 'TEST_P3'
TABLE_NAME                     P_TYPE    PT_COUNT
------------------------------ ------- ----------
TEST_P3                        RANGE           46

&#62;@ind_cols
IND_NAME           TAB_NAME           PSN       COL_NAME
------------------ ------------------ --------- ------------
TP3_PK             TEST_P3            1         ID
TP_CRE_DT          TEST_P3            1         CRE_DATETIME</pre>
<p>{This is a very typical senario, as is the opposite situation where the table is partitioned on date but has a numeric column holding eg order number or customer ID.}</p>
<p>The below shows a select of a single record by ID.</p>
<pre class="brush: sql;">select id,cre_datetime,num_1,vc_1
from test_p3 where id=37123
/
        ID CRE_DATETIME           NUM_1 VC_1
---------- ----------------- ---------- ----------
     37123 12-OCT-2009 02:52         19 RMZAN
1 row selected.

Execution Plan
----------------------------------------------------------
----------------------------------------------
&#124; Id  &#124; Operation                          &#124; Name    &#124; Rows  &#124;
Bytes &#124; Cost (%CPU)&#124; Time     &#124; Pstart&#124; Pstop &#124;
----------------------------------------------------------------
----------------------------------------------
&#124;   0 &#124; SELECT STATEMENT                   &#124;         &#124;     1 &#124;
  22 &#124;     2   (0)&#124; 00:00:01 &#124;       &#124;       &#124;
&#124;   1 &#124;  PARTITION RANGE SINGLE            &#124;         &#124;     1 &#124;
  22 &#124;     2   (0)&#124; 00:00:01 &#124;    38 &#124;    38 &#124;
&#124;   2 &#124;   TABLE ACCESS BY LOCAL INDEX ROWID&#124; TEST_P3 &#124;     1 &#124;
  22 &#124;     2   (0)&#124; 00:00:01 &#124;    38 &#124;    38 &#124;
&#124;*  3 &#124;    INDEX UNIQUE SCAN               &#124; TP3_PK  &#124;     1 &#124;
     &#124;     1   (0)&#124; 00:00:01 &#124;    38 &#124;    38 &#124;
----------------------------------------------------------------
----------------------------------------------
Statistics
----------------------------------------------------------
          1  recursive calls
          0  db block gets
          3  consistent gets
          0  physical reads</pre>
<p>Note the PARTITION RANGE SINGLE and pstart/pstop are both 38. Consistent gets are only 3. The query is very efficient as the CBO identified that records matching the WHERE clause could only exist in the one partition. The relevant local index is examined for 2 consisted gets (the BLEVEL of the local index partitions is 1) and then one consistent get against the table.</p>
<p>Now I&#8217;ll scan for records for a range of IDs:</p>
<pre class="brush: sql;">select id,cre_datetime,num_1,vc_1
from test_p3 where id between 30980 and 31019
/
        ID CRE_DATETIME           NUM_1 VC_1
---------- ----------------- ---------- ----------
     30980 25-SEP-2009 01:20         15 JQLYA
     30981 25-SEP-2009 01:24          5 WYWCR
     30982 25-SEP-2009 01:28         10 QZSHD
     30983 25-SEP-2009 01:32         18 KQBSU
     30984 25-SEP-2009 01:36          2 HRPMA
....
     31018 25-SEP-2009 03:52          3 YOPJO
     31019 25-SEP-2009 03:56         10 GNGKG

40 rows selected.

Execution Plan
----------------------------------------------------------
----------------------------------------------
&#124; Id  &#124; Operation                          &#124; Name    &#124; Rows  &#124;
Bytes &#124; Cost (%CPU)&#124; Time     &#124; Pstart&#124; Pstop &#124;
----------------------------------------------------------------
----------------------------------------------
&#124;   0 &#124; SELECT STATEMENT                   &#124;         &#124;    40 &#124;
 880 &#124;     9   (0)&#124; 00:00:01 &#124;       &#124;       &#124;
&#124;   1 &#124;  PARTITION RANGE ITERATOR          &#124;         &#124;    40 &#124;
 880 &#124;     9   (0)&#124; 00:00:01 &#124;    31 &#124;    32 &#124;
&#124;   2 &#124;   TABLE ACCESS BY LOCAL INDEX ROWID&#124; TEST_P3 &#124;    40 &#124;
 880 &#124;     9   (0)&#124; 00:00:01 &#124;    31 &#124;    32 &#124;
&#124;*  3 &#124;    INDEX RANGE SCAN                &#124; TP3_PK  &#124;     2 &#124;
     &#124;     2   (0)&#124; 00:00:01 &#124;    31 &#124;    32 &#124;
----------------------------------------------------------------

Statistics
---------------------------------------------
          0  recursive calls
          0  db block gets
         52  consistent gets
          0  physical reads</pre>
<p>Again, you can see partition exclusion, this time as a PARTITION RANGE ITERATOR and Pstart/Pstop of 31 and 32. Consistent gets were higher, but I did fetch several records.</p>
<p>Now a query is issued for a record with a specific value for CRE_DATETIME.</p>
<pre class="brush: sql;">select id,cre_datetime,num_1,vc_1
from test_p3 where cre_datetime =
   to_date('06-OCT-2009 12:20','DD-MON-YYYY HH24:MI')
/
        ID CRE_DATETIME           NUM_1 VC_1
---------- ----------------- ---------- ----------
     35105 06-OCT-2009 12:20         11 JPQHO
1 row selected.

Execution Plan
----------------------------------------------------------
------------------------------------------------
&#124; Id  &#124; Operation                          &#124; Name      &#124; Rows  &#124;
 Bytes &#124; Cost (%CPU)&#124; Time     &#124; Pstart&#124; Pstop &#124;
----------------------------------------------------------------
------------------------------------------------
&#124;   0 &#124; SELECT STATEMENT                   &#124;           &#124;     1 &#124;
    22 &#124;    48   (0)&#124; 00:00:01 &#124;       &#124;       &#124;
&#124;   1 &#124;  PARTITION RANGE ALL               &#124;           &#124;     1 &#124;
    22 &#124;    48   (0)&#124; 00:00:01 &#124;     1 &#124;    46 &#124;
&#124;   2 &#124;   TABLE ACCESS BY LOCAL INDEX ROWID&#124; TEST_P3   &#124;     1 &#124;
    22 &#124;    48   (0)&#124; 00:00:01 &#124;     1 &#124;    46 &#124;
&#124;*  3 &#124;    INDEX RANGE SCAN                &#124; TP_CRE_DT &#124;     1 &#124;
       &#124;    47   (0)&#124; 00:00:01 &#124;     1 &#124;    46 &#124;
----------------------------------------------------------------

Statistics
---------------------------------------
          1  recursive calls
          0  db block gets
         90  consistent gets
          0  physical reads</pre>
<p>Notice that partition exclusion does not occur, you see PARTITION RANGE ALL, Pstart/Pstop of 1 &#8211; 46. The CBO cannot identify which partitions may or may not hold records with that CRE_DATETIME. Consistent gets are now a lot higher, 90 (as compared to 3 for the situation where partition exclusion can occur}, as oracle has to prob each and every local index partition to identify if any records for the given value exist.</p>
<p>Of course, you probably would not look for a record with a specific datetime, but in the opposite senario of having partitioned on datetime, it would not be at all unusual to look for a record with a given ID and partition exclusion not being possible.</p>
<p>As I mentioned earlier, this need to scan all of the local indexes because no partition exclusion is possible is something I <a href="http://mwidlake.wordpress.com/2009/10/29/">discussed a couple of weeks back.</a></p>
<p>Now I will select for the range of dates that my range scan in ID identified:</p>
<pre class="brush: sql;">select id,cre_datetime,num_1,vc_1
from test_p3
where cre_datetime between to_date('25-SEP-2009 01:20','DD-MON-YYYY HH24:MI')
                   and     to_date('25-SEP-2009 03:56','DD-MON-YYYY HH24:MI')

        ID CRE_DATETIME           NUM_1 VC_1
---------- ----------------- ---------- ----------
     30980 25-SEP-2009 01:20          3 BGAFO
     30981 25-SEP-2009 01:24         15 PXGJD
     30982 25-SEP-2009 01:28         12 PGQHJ
     30983 25-SEP-2009 01:32         17 TIBZG
     30984 25-SEP-2009 01:36         11 EQQQV
...
     31018 25-SEP-2009 03:52         18 FSNVI
     31019 25-SEP-2009 03:56         16 LJWNO
40 rows selected.

Execution Plan
----------------------------------------------------------
------------------------------------------------
&#124; Id  &#124; Operation                          &#124; Name      &#124; Rows  &#124;
 Bytes &#124; Cost (%CPU)&#124; Time     &#124; Pstart&#124; Pstop &#124;
----------------------------------------------------------------
------------------------------------------------
&#124;   0 &#124; SELECT STATEMENT                   &#124;           &#124;    42 &#124;
   924 &#124;    54   (0)&#124; 00:00:01 &#124;       &#124;       &#124;
&#124;   1 &#124;  PARTITION RANGE ALL               &#124;           &#124;    42 &#124;
   924 &#124;    54   (0)&#124; 00:00:01 &#124;     1 &#124;    46 &#124;
&#124;   2 &#124;   TABLE ACCESS BY LOCAL INDEX ROWID&#124; TEST_P3   &#124;    42 &#124;
   924 &#124;    54   (0)&#124; 00:00:01 &#124;     1 &#124;    46 &#124;
&#124;*  3 &#124;    INDEX RANGE SCAN                &#124; TP_CRE_DT &#124;    42 &#124;
       &#124;    47   (0)&#124; 00:00:01 &#124;     1 &#124;    46 &#124;
----------------------------------------------------------------
------------------------------------------------

Statistics
----------------------------------------------------------
          1  recursive calls
          0  db block gets
        136  consistent gets
          0  physical reads</pre>
<p>That actually selects back the same records, but now a PARTITION RANGE ALL is invoked, Pstart/Pstop os 1-46 and the number of consistent gets goes up to 136.</p>
<p>I discussed the impact of partitions on range scans  <a href="http://mwidlake.wordpress.com/2009/11/05/">in this second post about performance issues with partitions.</a> </p>
<p>Thankfully, you can often alleviate this problem of considering all partitions.</p>
<p>The below shows a scan for records for a range of dates.</p>
<pre class="brush: sql;">select count(*)
from test_p3
where cre_datetime between to_date('18-OCT-2009','DD-MON-YYYY')
                   and     to_date('20-OCT-2009','DD-MON-YYYY')

  COUNT(*)
----------
       721
1 row selected.

Execution Plan
----------------------------------------------------------
----------------------------------
&#124; Id  &#124; Operation            &#124; Name      &#124; Rows  &#124; Bytes &#124; Cost
(%CPU)&#124; Time     &#124; Pstart&#124; Pstop &#124;
----------------------------------------------------------------
----------------------------------
&#124;   0 &#124; SELECT STATEMENT     &#124;           &#124;     1 &#124;     8 &#124;    49
   (0)&#124; 00:00:01 &#124;       &#124;       &#124;
&#124;   1 &#124;  SORT AGGREGATE      &#124;           &#124;     1 &#124;     8 &#124;
      &#124;          &#124;       &#124;       &#124;
&#124;   2 &#124;   PARTITION RANGE ALL&#124;           &#124;   731 &#124;  5848 &#124;    49
   (0)&#124; 00:00:01 &#124;     1 &#124;    46 &#124;
&#124;*  3 &#124;    INDEX RANGE SCAN  &#124; TP_CRE_DT &#124;   731 &#124;  5848 &#124;    49
   (0)&#124; 00:00:01 &#124;     1 &#124;    46 &#124;
----------------------------------------------------------------
----------------------------------

Statistics
----------------------------------------------------------
          1  recursive calls
          0  db block gets
         90  consistent gets
          0  physical reads</pre>
<p>As you can see, no partitiion exclusion is possible, every partition is considered (PARTITION RANGE ALL, Pstart/Pstop of 1-46). 90 consistent gets are required. </p>
<p>The trick is to introduce a second WHERE clause, limiting the query by the partitioning key <em>as well</em>.<br />
As a human, you can recognise that the ID and the CRE_DATETIME columns are going to increase pretty much in synchronisation. Records with a CRE_DATETIME a month ago are going to be found in partitions with a lower ID range than those from a week ago. Oracle does not know this business logic, so you have to tell it.</p>
<p>Let us say you never have more than 1,000 records created a day. so if you want &#8220;today&#8217;s&#8221; data, you need only consider IDs that are between the max(ID) and the max(ID) less 1,000. To be safe, you would increase this range substantially. The idea is to exclude <strong>most</strong> partitions without risking missing data:</p>
<pre class="brush: sql;">select count(*)
from test_p3
where cre_datetime between to_date('18-OCT-2009','DD-MON-YYYY')
                   and     to_date('20-OCT-2009','DD-MON-YYYY')
and  id between 39000 and 41000

  COUNT(*)
----------
       721
1 row selected.

Execution Plan
----------------------------------------------------------
------------------------------------------------
&#124; Id  &#124; Operation                   &#124; Name             &#124; Rows  &#124;
 Bytes &#124; Cost (%CPU)&#124; Time     &#124; Pstart&#124; Pstop &#124;
----------------------------------------------------------------
------------------------------------------------
&#124;   0 &#124; SELECT STATEMENT            &#124;                  &#124;     1 &#124;
    13 &#124;    14   (8)&#124; 00:00:01 &#124;       &#124;       &#124;
&#124;   1 &#124;  SORT AGGREGATE             &#124;                  &#124;     1 &#124;
    13 &#124;            &#124;          &#124;       &#124;       &#124;
&#124;*  2 &#124;   VIEW                      &#124; index$_join$_001 &#124;    34 &#124;
   442 &#124;    14   (8)&#124; 00:00:01 &#124;       &#124;       &#124;
&#124;*  3 &#124;    HASH JOIN                &#124;                  &#124;       &#124;
       &#124;            &#124;          &#124;       &#124;       &#124;
&#124;   4 &#124;     PARTITION RANGE ITERATOR&#124;                  &#124;    34 &#124;
   442 &#124;     7  (15)&#124; 00:00:01 &#124;    40 &#124;    42 &#124;
&#124;*  5 &#124;      INDEX RANGE SCAN       &#124; TP_CRE_DT        &#124;    34 &#124;
   442 &#124;     7  (15)&#124; 00:00:01 &#124;    40 &#124;    42 &#124;
&#124;   6 &#124;     PARTITION RANGE ITERATOR&#124;                  &#124;    34 &#124;
   442 &#124;     9  (23)&#124; 00:00:01 &#124;    40 &#124;    42 &#124;
&#124;*  7 &#124;      INDEX RANGE SCAN       &#124; TP3_PK           &#124;    34 &#124;
   442 &#124;     9  (23)&#124; 00:00:01 &#124;    40 &#124;    42 &#124;
----------------------------------------------------------------
------------------------------------------------

Statistics
----------------------------------------------------------
          1  recursive calls
          0  db block gets
         18  consistent gets
          0  physical reads</pre>
<p>In the above I have managed to exclude most of the partitions and still get the correct data, by adding the clause <strong>and  id between 39000 and 41000</strong> . There is something a little unusal {if you have not seen it before} with the plan being scans of two indexes and then hashed together and viewed, but both are PARTITION RANGE ITERATOR scans and Pstart/Pstop values are 40-42. Consistent gets are down to 18.</p>
<p>You do have to <strong>take great care</strong> with this method that the extra WHERE clause you add on the partitioning key will never exclude records you want to find. But so long as you do, it is a very powerful technique.</p>
<p>I&#8217;ll go into that a little more in the next posting {which hopefully will not be as delayed as this one!}</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Depth of Indexes on VLDBs]]></title>
<link>http://mwidlake.wordpress.com/2009/11/18/depth-of-indexes-on-vldbs/</link>
<pubDate>Tue, 17 Nov 2009 23:13:07 +0000</pubDate>
<dc:creator>mwidlake</dc:creator>
<guid>http://mwidlake.wordpress.com/2009/11/18/depth-of-indexes-on-vldbs/</guid>
<description><![CDATA[In a couple of recent posts on partitions, on single row and range scan access I have started explor]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>In a couple of recent posts on partitions, on<a href="http://mwidlake.wordpress.com/2009/10/29/"> single row</a> and <a href="http://mwidlake.wordpress.com/2009/11/05/">range scan</a> access I have started exploring the performance of partitions. I will continue on the main theme soon, honest.</p>
<p>I feel a little bad that I have not given concrete examples so far {creating very large objects for the sake of demonstrations and proof-of-concepts is a bit of an issue with VLDBs, due to the space and time requirements to do it}. So, here is just some real-world information on index depth, or BLEVEL of indexes on Very Large DataBases.</p>
<p>The BLEVEL is the number of levels in the index. Minus one. See <a href="http://mwidlake.wordpress.com/2009/11/13/">this post</a> for a full description, but in brief, if an index has a BLEVEL of 3, that means there is a root node, a level of branch nodes, a second level of branch nodes and then the leaf nodes. 4 levels. 4 IOs to check if the index holds the value you are looking for. And then one or more IOs against the table to get the actual records from the table, if required (one block if there is only one row, one or more blocks if there are several rows).</p>
<p>The below is from a 25TB datawarehouse system. I am looking for the maximum index depth on the database:-</p>
<p>select max(blevel) from dba_indexes</p>
<p>MAX(BLEVEL)<br />
&#8212;&#8212;&#8212;&#8211;<br />
4</p>
<p>OK, how many indexes are this deep?&#8230;</p>
<p>select owner,index_name from dba_indexes<br />
where blevel=4</p>
<p>OWNER INDEX_NAME<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
ERIC W_IIIIIIII_URLS_PK</p>
<p>1 row selected.</p>
<p>Oh. I have a pretty massive database and the deepest index I have is BLEVEL 4 and there is one of them. So the index height is 5. And access to that table for a given referral ID is going to take 5 IOs to work down the index and one against the table.</p>
<p>What is more, the index is an IOT</p>
<p>INDEX_NAME INDEX_TYPE<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
W_REFERRAL_URLS_PK IOT &#8211; TOP</p>
<p>so, in fact, to get to the table record it is just the 5 IOs as the table record is held in the IOT.</p>
<p>So with a 25TB data warehouse, <strong>the deepest normal indexes are BLEVEL 3</strong>.</p>
<pre class="brush: sql;">select index_name,num_rows/leaf_blocks
from dba_indexes
where BLEVEL =3
order by num_rows desc

INDEX_NAME                             NUM_ROWS  LEAF_BLOCKS
------------------------------ ---------------- ------------
W_WL_SH_API_XIIIIIIIIIII_ID     4,585,108,192   13,406,015
W_WL_SHIIIIIIIIIIIXXXX_ID    4,564,350,002   16,892,898
W_WL_SIIIIIIIIIIIIIIIIIIIIII_ID     4,422,775,820   17,189,536
W_WL_SHIIIIIIIIIIIIIIIIIIIIII_ID    4,182,087,545   12,243,438
W_WL_GX_RESIIIIIIIIIII_LOG_ID1     3,690,374,216   14,613,388
IDX_W_WL_LIIIIIIIIIIIESS_ID          351,507,905    1,958,109
WL_LOGIN_SUIIIIIIIIIIIIE_ID          348,004,861    1,550,180
IND_IIII_LEG_ID                     312,727,000      972,690
IND_TMLR_MARIIIIIIIIIII_ID           306,988,247    1,121,592
PK_TBL_IIIIIIIIIIIUNNER              305,566,240      939,775
PK_IIIIIIIIIIIGS                    284,208,000      863,000</pre>
<p>I asked an old friend, Tony Webb, to check out the depth of indexes on the largest databases they have, which range from a few TB to several 10s of TB. {one  is 100TB plus, but a lot of the data is in LOBs, so the actual number of records is only billions, not 10&#8217;s of billions <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  } No index had a BLEVEL greater than 3.</p>
<blockquote><p>Hi Martin,</p>
<p>I ran the first query on DAVE, DEE(our biggest db), DOZY and MICK. The max depth results were 3,2,3 and 3. Our largest database only had 2. In fact some of the other largish dbs also only have a max depth of 2.</p>
<p>That enough for your blog Martin?</p></blockquote>
<p>Now, some of you may be smelling a Rat, and you would be right. At both sites, the VLDBs have been designed with partitioning as a key part of the Physical Implementation. All the largest objects are partitioned. What impact does partitioning have on BLEVEL?</p>
<p>The depth of the index segment is dependent on the number of keys per block.</p>
<p>Let us say you have 8k blocks {this is a questionably low block size for a data warehouse, but it is what some of these systems have} and your index is on a couple of columns, totalling 20 bytes per key on average, including rowid. Allowing block overhead, that is approx 8000/20 entries = 400 max&#8230;.</p>
<p>Blow that, that&#8217;s whooly theory, I&#8217;ll look at my real 25TB database for number of rows per leaf block&#8230; </p>
<pre class="brush: sql;">
select leaf_blocks, num_rows\leaf_blocks rows_per_leaf
from dba_ind_statistics
where num_rows &#38;gt; 100000000
order by leaf_blocks desc

 LEAF_BLOCKS ROWS_PER_LEAF
------------ -------------
  30,211,949    325.602273
  28,717,447    262.762331
  26,308,608    382.505959
  25,429,862    385.047045
  24,054,626     309.92864
  23,660,747    382.571434
  22,458,058    411.063205
  22,316,976    346.620625
  18,875,827    379.952198
  17,451,901    338.600909
  17,189,536     257.29466</pre>
<p>From the above let us take a low figure of 300 average enteries per block. For a BLEVEL 0 , a one block index, that would be 300 rows that are referenced. For a level 1 index, 300 entries in the root block will point to 300 leaf blocks, so that will be 300*300 rows&#8230;90,000 entires.</p>
<p>Go down another BLEVEL to 2 (and a height of 3) and you have a root node referencing 300 Branch nodes, referenceing 300 Leaf nodes each referencing 300 records. 300*300*300 = 27 million.</p>
<p>Another level (BLEVEL 3), another factor of 300 and that is 8.1 billion.</p>
<p>BLEVEL 0= 300<br />
BLEVEL 1 = 90,000<br />
BLEVEL 2 = 27,000,000<br />
BLEVEL 3 = 8,100,000,000<br />
BLEVEL 4 = 6,480,000,000,000  (6,480 billion entries). </p>
<p>You can see that with an 8k block size and being very pessimistic about the number of entries per block (I used a low average to calculate enttries per block where as in reality most indexes will fill the block at the root and branch nodes to close to full before throwing a new level) your have to increase your data volume by amost 300 to throw a new level of index.</p>
<p>On average, knowing nothing about the actual number of records in an index, you would have to reduce your number of indexed rows by 150 times (half of 300) to have a 50% chance of lowering the BLEVEL of a locally partitioned index by one. ie 150 or more partitions.</p>
<p>with a 32k block size, you would have to reduce your data volume by more like 620 times to drop the BLEVEL (not 600 as you have less wastage from block overhead with larger blocks).</p>
<p>To reduce it by two it would be 300*150 I think, wiht 8k block size {can any statisticians, like Mr Lewis, help me out on this one?}. If I am right, that is 45,000 partitions. In that 25TB datawarehouse, no table has more than 4,000 partitions.</p>
<p>That is why I say, when you partition a table and have locally partitioned indexes, you might reduce the index level by 1. Might.</p>
<p>However, none of these systems has more than 4000 partitions per table. That might sound a lot, but it is only going to reduce an index BLEVEL by 1. Almost certainly it will, but if you have read the previous postings, that is not going to really help index lookups be that more efficient <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>I&#8217;ll just add a couple of last comments.</p>
<ul>
<li>If you have an index BLEVEL of 4 or 5 or more and do not have a VLDB, you might want to look at why {hints, it could be an IOT, it could be an index on several concatenated VARCHAR2 columns, it could be you are using 2k block size, it could be that you regularly delete a large pecentage of your data and then re-insert more data, it could be you have a one-table database, hehe.}.</li>
<li>Point one does not mean you should rebuild said index. <strong>I almost never rebuild indexes</strong>. The need to do so is one of those Oracle myths. There are situations where index rebuilds are advantageous, but they are pretty damned rare. If you regularly rebuild all your indexes or you are thinking of doing so, can I suggest you book a &#8220;meeting&#8221; for an afternoon and sit down with a cup of tea and google/bing/yahoo or whatever and check out index rebuilding first? Ignore any sites you land on offering database health checks or training courses on cruise liners.</li>
</ul>
<p>That&#8217;s all for now.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Partitions]]></title>
<link>http://tubascope.wordpress.com/2009/11/14/partitions/</link>
<pubDate>Sat, 14 Nov 2009 11:19:53 +0000</pubDate>
<dc:creator>tubaland</dc:creator>
<guid>http://tubascope.wordpress.com/2009/11/14/partitions/</guid>
<description><![CDATA[Que faire ce Weekend ? Et pourquoi pas jouer un petit Concertino pour Tuba et Piano Trio (piano, vio]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div>Que faire ce Weekend ? Et pourquoi pas jouer un petit <em>Concertino pour Tuba et Piano Trio</em> (piano, violoncelle, violon) de JG Albrechtsgerger (maître de Beethoven)? Et gratuit en plus ? Il s&#8217;agit d&#8217;une transcription d&#8217;une pièce en 4 mouvements écrite pour trompette. Bien sûr comme toute les transcriptions on sent bien que certains passages n&#8217;ont pas été écrit directement pour l&#8217;instrument concerné;  mais apparemment (je ne l&#8217;ai pas joué, juste fait une lecture rapide) cela ne semble pas insurmontable (avec beaucoup de travail) malgré les passages très aigües.</div>
<div>Pour télécharger gratuitement  la partition et voir les autres partitions qui sont à vendre, rendez-vous sur le site  <a href="http://www.dorm40music.com/index.asp" target="_blank">dorm40music.com</a>. A savoir que pour faire de la pub, ils proposeront une partition gratuite tout les mois.</div>
<div>Reste plus qu&#8217;à travailler <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </div>
<p><a href="http://www.dorm40music.com/freePDFDownload.asp" target="_blank">Cliquez ici</a> pour télécharger le concertino (pdf).</p>
<p><img class="aligncenter size-medium wp-image-791" title="Albrectsberger" src="http://tubascope.wordpress.com/files/2009/11/albrectsberger1.jpg?w=235" alt="Albrectsberger" width="235" height="300" /></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Be careful with partitions when adding fields to your fact tables!]]></title>
<link>http://joetechramblings.wordpress.com/2009/11/13/be-careful-with-partitions-when-adding-fields-to-your-fact-tables/</link>
<pubDate>Fri, 13 Nov 2009 19:41:12 +0000</pubDate>
<dc:creator>josrivera</dc:creator>
<guid>http://joetechramblings.wordpress.com/2009/11/13/be-careful-with-partitions-when-adding-fields-to-your-fact-tables/</guid>
<description><![CDATA[An interesting thing happened to me today. I added a field to a fact table that I had. As normal, I ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>An interesting thing happened to me today. I added a field to a fact table that I had. As normal, I did the change in my data source view as procedure dictates, and create the new measure on my cube. Everything looked fine and dandy until I tried to deploy the cube. Right off the bat, this error came up: &#8220;<em>OLE DB error: OLE DB or ODBC error: Invalid column name &#8216;&#60;ColumnName&#62;&#8217;.; 42S22&#8243;. </em>Huh? What happened? I double checked the DSV and the cube (thou not entirely as we&#8217;ll see further down) and everything<em> looked </em>ok. Re-deploy, re-discover same error.</p>
<p>A Google browse and an hour later, I read on <a href="http://www.sqlservercentral.com">www.sqlservercentral.com</a> forums that it could be the partitions. And then the proverbial lightbulb turned on in my head. I forgot to recheck the partitions, to include the field in the select statements for the fact table. Lesson learned? If you use partitions, <em>always </em>check them when you add a field to your fact table.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Muse Score]]></title>
<link>http://jmrmusic.wordpress.com/2009/11/12/23/</link>
<pubDate>Thu, 12 Nov 2009 08:14:15 +0000</pubDate>
<dc:creator>Jean Michel Robert</dc:creator>
<guid>http://jmrmusic.wordpress.com/2009/11/12/23/</guid>
<description><![CDATA[Presque aussi bien que les 1er versions de Sibélius, mais ici totalement gratuit MuseScore est un éd]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><em>Presque aussi bien que les 1er versions de Sibélius, mais ici totalement gratuit</em></p>
<p><em><a href="http://www.musescore.org/fr" target="_blank">MuseScore</a></em> est un éditeur <a href="http://fr.wikipedia.org/wiki/WYSIWYG">WYSIWYG</a> de partitions multiplateforme sous licence GNU GPL. Quelques précisions:</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[]]></title>
<link>http://jmrmusic.wordpress.com/2009/11/12/22/</link>
<pubDate>Thu, 12 Nov 2009 08:10:40 +0000</pubDate>
<dc:creator>Jean Michel Robert</dc:creator>
<guid>http://jmrmusic.wordpress.com/2009/11/12/22/</guid>
<description><![CDATA[partition de guitare réalisée avec Muse Score Vous pouvez la télécharger sur le lien ci-contre A tél]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><span style="font-family:Verdana, sans-serif;">partition de guitare réalisée avec Muse Score</span></p>
<p><span style="font-family:Verdana, sans-serif;">Vous pouvez la télécharger sur le lien ci-contre</span></p>
<p><a href="http://1.bp.blogspot.com/_4me9QOC1SDA/Svs2PkLpxtI/AAAAAAAAAu8/jtONayIMe38/s1600-h/Angelus+ad+Virginem.bmp"><img src="http://1.bp.blogspot.com/_4me9QOC1SDA/Svs2PkLpxtI/AAAAAAAAAu8/jtONayIMe38/s320/Angelus+ad+Virginem.bmp" border="0" alt="" width="320" height="200" /></a></p>
<p><a href="http://1.bp.blogspot.com/_4me9QOC1SDA/Svs2PkLpxtI/AAAAAAAAAu8/jtONayIMe38/s1600-h/Angelus+ad+Virginem.bmp"></a><span><a href="http://dl.free.fr/u0NSN7GQ5"><span style="font-family:Verdana, sans-serif;">A télécharger ici</span></a></span></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[nouvelle partition]]></title>
<link>http://jmrmusic.wordpress.com/2009/11/12/nouvel-partition/</link>
<pubDate>Thu, 12 Nov 2009 07:50:45 +0000</pubDate>
<dc:creator>Jean Michel Robert</dc:creator>
<guid>http://jmrmusic.wordpress.com/2009/11/12/nouvel-partition/</guid>
<description><![CDATA[la bionda treçça la bionda treçça]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><h2>la bionda treçça</h2>
<p><a href="http://jmrmusic.wordpress.com/files/2009/11/la-bionda-trecca.pdf">la bionda treçça</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[partition de guitare réalisée avec Muse Score]]></title>
<link>http://jmrmusic.wordpress.com/2009/11/11/partition-de-guitare-realisee-avec-muse-score/</link>
<pubDate>Wed, 11 Nov 2009 17:32:00 +0000</pubDate>
<dc:creator>Jean Michel Robert</dc:creator>
<guid>http://jmrmusic.wordpress.com/2009/11/11/partition-de-guitare-realisee-avec-muse-score/</guid>
<description><![CDATA[partition de guitare réalisée avec Muse Score Vous pouvez la télécharger sur le lien ci-contre A tél]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><span style="font-family:Verdana, sans-serif;">partition de guitare réalisée avec Muse Score</span><br />
<span style="font-family:Verdana, sans-serif;">Vous pouvez la télécharger sur le lien ci-contre</span></p>
<div class="separator" style="clear:both;text-align:center;"><a style="margin-left:1em;margin-right:1em;" href="http://1.bp.blogspot.com/_4me9QOC1SDA/Svs2PkLpxtI/AAAAAAAAAu8/jtONayIMe38/s1600-h/Angelus+ad+Virginem.bmp"><img src="http://1.bp.blogspot.com/_4me9QOC1SDA/Svs2PkLpxtI/AAAAAAAAAu8/jtONayIMe38/s320/Angelus+ad+Virginem.bmp" border="0" alt="" width="320" height="200" /></a></div>
<div class="separator" style="clear:both;text-align:center;"><a style="margin-left:1em;margin-right:1em;" href="http://1.bp.blogspot.com/_4me9QOC1SDA/Svs2PkLpxtI/AAAAAAAAAu8/jtONayIMe38/s1600-h/Angelus+ad+Virginem.bmp"></a><span style="white-space:pre-wrap;"><a href="http://dl.free.fr/u0NSN7GQ5" target="_blank"><span style="font-family:Verdana, sans-serif;">A télécharger ici</span></a></span></div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Windows 7 and that pesky System Partition]]></title>
<link>http://deployment.xtremeconsulting.com/2009/11/05/windows-7-and-that-pesky-system-partition/</link>
<pubDate>Thu, 05 Nov 2009 23:15:29 +0000</pubDate>
<dc:creator>tmintner</dc:creator>
<guid>http://deployment.xtremeconsulting.com/2009/11/05/windows-7-and-that-pesky-system-partition/</guid>
<description><![CDATA[If you have installed Windows 7 or Server 2008 R2 through either the Windows media or MDT then you h]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>If you have installed Windows 7 or Server 2008 R2 through either the Windows media or MDT then you have noticed that a 100 – 300 MB system partition is created that is hidden when you finish in the final operating system (well it is not really hidden, it just doesn’t have a drive letter).&#160; The Microsoft Windows team made that decision so that bitlocker could easily be enabled at a later time without having to repartition the disks.&#160; However if you don’t ever plan on enabling Bitlocker on your Windows 7 or Server 2008 R2 systems you can use MDT with an extra variable in the customsettings.ini and MDT won’t create the extra partition.&#160; The variable is:</p>
<p>DoNotCreateExtraPartition = YES</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Partitions are Still Not for Performance - Sometimes]]></title>
<link>http://mwidlake.wordpress.com/2009/11/05/partitions-are-still-not-for-performance-sometimes/</link>
<pubDate>Thu, 05 Nov 2009 03:06:48 +0000</pubDate>
<dc:creator>mwidlake</dc:creator>
<guid>http://mwidlake.wordpress.com/2009/11/05/partitions-are-still-not-for-performance-sometimes/</guid>
<description><![CDATA[This is a follow up to my first posting on why Partitions are not for Performance where I discuss ho]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>This is a follow up to my first posting on why <a href="http://mwidlake.wordpress.com/2009/10/29/">Partitions are not for Performance</a> where I discuss how lookups against a partitioned table with a locally partitioned index and no partition pruning can lead to performance problems. Basically, the CBO ends up scanning all local indexes to find the record(s) you want, which with a hundred partitions will probably result in several hundred buffer gets instead of 4 or 5.</p>
<p>The first posting dealt with the simple situation where a single record is being selected but this lack of partition pruning also crops up with range scans of course.</p>
<p>{warning, this is a long post, but if you use partitions you need to understand this}.<br />
{Caveat, it has been pointed out the last comment, and by association this one, appears partition-negative. I am not partition-negative, partitions are <em>great</em> but for reasons generally other than performance and, to improve performance, you need to understand how partitions fit in with the CBO}</p>
<p>Imagine you have an unpartitioned ORDERS table with 10 million rows, the primary key is the traditional ascending numeric, derived from a sequence.<br />
About 5,000 orders a day are received, the table goes back around 10 years (as in the past, less orders per day were received).<br />
There is also an ORDER_DATETIME column, a DATE type column holding the data and time the order was placed. This column has a traditional index on it, which has a B-level of 3.</p>
<p>You want to query for all ORDERS placed on a date, say 1st November 2009, so you issue a query with the following WHERE clause:<br />
WHERE ORDER_DATETIME &#62;= TO_DATE(&#8216;01-NOV-2009&#8242;,&#8217;DD-MON-YYYY&#8217;)<br />
AND ORDER_DATETIME &#60; TO_DATE(&#8216;01-NOV-2009&#8242;,&#8217;DD-MON-YYYY&#8217;)</p>
<p>That will select around 5,000 out of 10 million rows and so a nested loop lookup on the index is the most suitable {just accept this for now, OK?}</p>
<p>The CBO will work down the levels on the index on ORDER_DATETIME to the first record of interest, taking 4 I/Os. It will then scan the index for all entries in that range, so maybe 10 leaf blocks, and then read the database blocks for each one &#8211; 5000 I/Os against the table, but as the data will be clustered well, most reads will be to the same say 100 blocks, so they will be cached in the block buffer cache. {Under Oracle &#8211; to 11.1 anyway &#8211; all IO is treated as physical, so the default optimizer will calculate the cost based on this, but in reality most IO will be logical IO, not physical IO}.</p>
<p>So the real cost will be 4 IOs to find the start of the index to scan, 10 I/Os to scan the index and 5000 IOs to get the table data &#8211; 5014 logical I/O&#8217;s, with between 0 and (4+10+100 =114) physical IOs to get the data into the cache, depending on what was cached already.</p>
<p>OK, remember those figures&#8230;</p>
<p>Now we partition the table <strong>by the ORDER_DATETIME column</strong> into 100 partitions and the index on ORDER_DATETIME is locally partitioned of course. Your same WHERE clause on ORDER_DATETIME will now resolve to a single index partition.</p>
<p><strong>If you are lucky</strong> the local index partition will have a B-level of 2, 1 less than the standard non-partitioned index. So, with the same WHERE clause, the CBO will work down the local index partition to the first record of interest, for 3 I/Os. Then it will scan the index for the same 10 leaf blocks and find 5,000 records to check in the table partition, with the same 5,000 I/Os. You have saved&#8230;.Yep, 1 logical IO. Physical IOs are between 0 and (3+10+100 =113). Let&#8217;s be kind and assume you saved a physical IO.</p>
<p>In this case, partitioning saved 1 out of 5104 logical and 1 out of 114 physical IOs.</p>
<p>Partitioning, in this case, is performance agnostic. It matters very, very little.</p>
<p>In reality, if your application is working on the same day of data over and over again, using the one partition, then that set of data will be cached and a nested-loop access to it will find the data in memory -but that would be true with the standard table and index too <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  So still no gain&#8230;.</p>
<p>I&#8217;ve assume a nested-loop access path is still used by the CBO when accessing your partition. <strong>This is where things can be very different</strong>. {and it is also where I should swap from theory and start creating some test data to prove this, but I&#8217;ll hang myself out first and then look like an idiot next week when I am back with my test system <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> }.</p>
<p>Let&#8217;s estimate that the unpartitioned table is 100,000 blocks (100 rows per block).<br />
With 5,104 I/Os against a 10 million row table/index , a nested loop lookup is likely to be chosen as the CBO estimated the number of I/Os to be less than scanning the whole table (100,000 blocks divided by the actual multi block read count {which is not the db_file_multi_block_read_count, but I&#8217;m skipping over that detail}, let&#8217;s say 12, for say 8,500 I/Os ).</p>
<p>With the table split into 100 partitions, there is 1,000 blocks in each partition. The whole table can be scanned with 1,000/real-multi-block-read-count {12}. So 80 or so I/Os</p>
<p>So in reality, your partitioning MAY be beneficial as the CBO decided to forget the index and nested lookups and simply scans the whole partition into memory for maybe 80-100 I/Os using multi block scans and processes the data in memory, burning some CPU as well, to find the records you want.</p>
<p>So, instead of 5,103 IOs the CBO decides to do 80-100 I/Os and some extra memory/cpu work, which is cheap given the power of modern CPUs.</p>
<p>So, partitions <em>may</em> help performance as the CBO swaps from nested loop lookups with an index to simply full scanning the partition.</p>
<p>You may start to wonder if that index on ORDER_DATETIME helps much&#8230; If it is to support range scans of a <em>significant</em> number of records, maybe not, but if it helps single or small-number record lookups, the index still helps.</p>
<p>I don&#8217;t know about you, but my brain is full for the night. I&#8217;ll leave this for another day&#8230;.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Stateless VMware ESXi 3.5 on an HP c7000 Blade Server...]]></title>
<link>http://symbolik.wordpress.com/2009/11/01/stateless-vmware-esxi-3-5-on-an-hp-c7000-blade-server/</link>
<pubDate>Sat, 31 Oct 2009 19:11:59 +0000</pubDate>
<dc:creator>symbolik</dc:creator>
<guid>http://symbolik.wordpress.com/2009/11/01/stateless-vmware-esxi-3-5-on-an-hp-c7000-blade-server/</guid>
<description><![CDATA[NOTE:  This is only an overview.  Due to the detailed nature of this project, I will break it up ove]]></description>
<content:encoded><![CDATA[NOTE:  This is only an overview.  Due to the detailed nature of this project, I will break it up ove]]></content:encoded>
</item>
<item>
<title><![CDATA[Partitions are Not for Performance]]></title>
<link>http://mwidlake.wordpress.com/2009/10/29/partitions-are-not-for-performance/</link>
<pubDate>Wed, 28 Oct 2009 23:33:16 +0000</pubDate>
<dc:creator>mwidlake</dc:creator>
<guid>http://mwidlake.wordpress.com/2009/10/29/partitions-are-not-for-performance/</guid>
<description><![CDATA[There is a myth that Partitions in Oracle magically aid performance, even a general assumption that ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>There is a myth that Partitions in Oracle magically aid performance, even a general assumption that the main role of partitioning is to aid performance. This is not so. There are certainly many cases where Partitioning <em>can</em> aid performance but in my experience they just as often hinder rather than help overall performance.</p>
<p>The myth is so strong that when asked at interview, most DBAs {and even some performance specialists} will site performance as the main (and occasionally only) benefit of partitioning.</p>
<p>Why can partitions hinder performance? Let&#8217;s say for example that you have a 10 million row table and an index on that table. That index has a B-Level of 3, which means it has a root block, one level of branch nodes, a second layer of branch nodes and then the leaf-node level. To access a row in the table via the index Oracle needs to read the root block, two branch blocks and then a leaf block to get the rowid of the record. This allows the table block {and from that the row} to be read. This is depicted in the below diagram, the numbered orange squares represent the blocks as selected in turn from the index and then table:</p>
<p><img src="http://mwidlake.wordpress.com/files/2009/10/screenhunter_04-oct-29-01-451.gif" alt="index_access_global" title="index_access_global" width="300" height="384" class="aligncenter size-full wp-image-543" /></p>
<p>That is 5 I/O operations to access that row.</p>
<p>Now we partition the table into 5 partitions, 2 million rows each. The index is locally partitioned. If you are lucky, you may, just may, end up with local index partitions with a B-level 1 less then the original table, so in our case a B-level of 2. The often suggest process is now that one partition is considered and thet the CBO will read one root node, a branch level block, a leaf block and then the block from the partition.</p>
<p><img src="http://mwidlake.wordpress.com/files/2009/10/screenhunter_06-oct-29-02-01.gif" alt="single_index_partition_access" title="single_index_partition_access" width="222" height="249" class="aligncenter size-full wp-image-546" /></p>
<p>4 I/Os and a saving of 20% {I&#8217;m ignoring for now caching and whether it is physical or logical IO}.</p>
<p>A saving of 20% IF {and only if} you have local index partitions with a lower B-Level than the equivalent non-partitioned index. And the access is to one partition alone.</p>
<p>However, I keep seeing situations where the index look up <strong>does not include the partition key</strong>. So you get the below situation:</p>
<p><img class="aligncenter size-full wp-image-539" title="index_lookup_partition" src="http://mwidlake.wordpress.com/files/2009/10/screenhunter_03-oct-28-22-46.gif" alt="index_lookup_partition" width="456" height="252" /></p>
<p>The CBO cannot exclude any partitions so it has to scan each one. For most partitions, maybe for all but one, no records are found, but the index has to be checked with 3 IO operations each. so in my example 16 I/Os are done to get the one record of interest.</p>
<p>16 I/O operations instead of 5.</p>
<p>The situation is often not spotted, at least initially, as the time taken to carry out the extra local index partition scans is &#8220;small&#8221;, especially for specific lookups. Usually any testing is done on a table with only a small numer of partitions.</p>
<p>I remember well the first time I came across this {on an Oracle 9.0 database I think}, there was well over 100 partitions and a process that checked many thousands of individual records had slowed down significantly, taking 4 or 5 times as long as before.</p>
<p>An indicator that the problem is occurring is when a single record lookup against the index and then table is taking perhaps several dozen to several hundred consistent gets rather than the 5 or 6 it should. Also, you will see the partition itterator in the explain plan. In that first case I came across the issue, consistent gets of about 380 per record fetched were being seen for a select that returned 1 record 99% of the time from a single table lookup. I&#8217;ve since seen the same problem on tables with over a thousand partitions, each local index being scanned for a total of almost 5000 consistent gets per record.</p>
<p>You may think that this would be an unusual situation as access against very large tables is either full/partial table scans or lookups on the PK/with a WHERE clause including the partitioning key &#8211; but it is actually very common. Partitioned tables are being used more and more in large but generally OLTP applications or sets of records are identified in a datawarehouse that are then checked more specifically with generally row-specific logic. With VLDBs which have many, many partitioned tables with many, many partitions each, the problem is common and often not recognized in the fog of other issues and massive I/O levels.</p>
<p>I&#8217;ve only covered a general performance issue with partitions here, I&#8217;ll expand on the theme and this simplistic example in the next post.</p>
<p>And yes, there are many ways partitioning CAN aid performance. I aim to get to those too. I really love partitioning.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Storage]]></title>
<link>http://metro42.wordpress.com/2009/10/28/202/</link>
<pubDate>Wed, 28 Oct 2009 10:29:55 +0000</pubDate>
<dc:creator>metro42</dc:creator>
<guid>http://metro42.wordpress.com/2009/10/28/202/</guid>
<description><![CDATA[There are a huge variety of storage systems  available on the market it is vital that businesses mak]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>There are a huge variety of <a href="http://www.storagesystemssource.co.uk/">storage systems</a>  available on the market it is vital that businesses make the most of the options available to them, select the most appropriate products for their needs and maximise their space.</p>
<p>These can be; <a href="http://www.storagebinssource.co.uk/">storage bins </a>which can handle large and small capacities, <a href="http://www.warehouserackingsource.co.uk/">warehouse racking </a>that will add a second or third level to a workspace, <a href="http://www.stillagessource.co.uk/">stillages</a> which can provide storage for difficult objects or even <a href="http://www.partitionssource.co.uk/">partitions</a> to make the most of existing space.</p>
<p>All of these plus many more storage options can help you and your business.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Free DriveImage XML &ndash; The Best Way to Backup Data?]]></title>
<link>http://billmullins.wordpress.com/2009/10/24/free-driveimage-xml-the-best-way-to-backup-data/</link>
<pubDate>Sat, 24 Oct 2009 16:46:07 +0000</pubDate>
<dc:creator>Bill Mullins</dc:creator>
<guid>http://billmullins.wordpress.com/2009/10/24/free-driveimage-xml-the-best-way-to-backup-data/</guid>
<description><![CDATA[It’s time, once again, for me to bug you about data backups. I’m being a little bit facetious, but i]]></description>
<content:encoded><![CDATA[It’s time, once again, for me to bug you about data backups. I’m being a little bit facetious, but i]]></content:encoded>
</item>
<item>
<title><![CDATA[R128 – Green in Glass]]></title>
<link>http://worldofglasses.wordpress.com/2009/10/22/r128-%e2%80%93-green-in-glass/</link>
<pubDate>Thu, 22 Oct 2009 12:00:14 +0000</pubDate>
<dc:creator>saintgobainglassindia</dc:creator>
<guid>http://worldofglasses.wordpress.com/2009/10/22/r128-%e2%80%93-green-in-glass/</guid>
<description><![CDATA[That all architectural structures are covered by solid opaque walls on all four sides to maintain pr]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img class="alignleft size-thumbnail wp-image-130" title="R128" src="http://worldofglasses.wordpress.com/files/2009/10/r128.jpg?w=150" alt="R128" width="267" height="207" />That all <a title="Architectural structures" href="http://en.wikipedia.org/wiki/Architectural_structure" target="_blank"><strong>architectural structures</strong> </a>are covered by solid opaque walls on all four sides to maintain privacy and security is a given. So, a home with walls of glass that offer a clear view of the inside is bound to create more than just a ripple, and 128 Werner Sobek does just that. This rather novel concept in residential <strong><a title="Architectures" href="http://www.glazette.com/features_view-26.html" target="_blank">architecture</a></strong> seems to have broken through all conventions and set a new &#8211; if not higher &#8211; standard in innovative construction.</p>
<p>R128 Werner Sobek is four-storey <strong><a title="sustainable house" href="http://www.glazette.com/features_view-38.html" target="_blank">house</a></strong>, floating high on a hill overlooking the city of Stuttgart, Germany. Inside this curious creation, there are no <strong><a title="Glass Doors" href="http://in.saint-gobain-glass.com/b2c/default.asp?nav1=app&#38;nav2=indoor&#38;id=357" target="_blank">doors</a></strong>, switches, interior walls<strong> </strong>or <strong><a title="partitions" href="http://in.saint-gobain-glass.com/b2c/default.asp?nav1=app&#38;nav2=indoor&#38;id=346" target="_blank">partitions</a></strong> and no closed rooms. But what takes the cake is that the home generates its own energy. The construction material used to create R128 is one hundred percent <a title="eco-friendly" href="http://www.glazette.com/features_view-25.html" target="_blank"><strong>eco-friendly</strong> </a>and <strong><a title="recyclable" href="http://www.glazette.com/features_view-92.html" target="_blank">recyclable</a></strong>.</p>
<p>R128 has a most attractive <strong><a title="glass facade" href="http://www.glazette.com/features_view-108.html" target="_blank">glass façade</a></strong> and is devoid of a basement. High quality <strong><a title="Triple Glazed glass" href="http://www.glazette.com/features_view-7.html" target="_blank">triple-glazed glass</a></strong> with inert gas filling is in use. The use of a modular design, complete with <strong><a title="panelling" href="http://in.saint-gobain-glass.com/b2c/default.asp?nav1=app&#38;nav2=indoor&#38;id=338" target="_blank">glass panels</a></strong> and steel frames ensured easy assembly and disassembly of the construction. The insulated glass<strong> </strong>panels prevent overheating of the <strong><a title="interior" href="http://in.saint-gobain-glass.com/b2c/default.asp?nav1=app&#38;nav2=indoor" target="_blank">interior</a></strong> during summer and loss of energy and warmth during winter. The supporting steel frame comprises of 10 tons of steel.</p>
<p><img class="alignleft size-thumbnail wp-image-131" title="werner house" src="http://worldofglasses.wordpress.com/files/2009/10/werner-house.jpg?w=112" alt="werner house" width="210" height="190" />The ceiling of the Werner Sobek glass house consists of prefabricated panels overlaid by plastic. Beneath the unscrewed floor, aluminium ceiling panels are affixed by clip connections. Lighting, heating and cooling systems are fitted into that layer and this acts as an acoustic absorber pattern.   </p>
<p>Sensor controlled doors have been installed on the upper and lower levels of the house. All appliances and environmental systems are also controlled by motion sensors and voice commands. The front door has a voice recognition feature which allows it to open automatically on a voice command. Water faucets in the bathrooms are regulated by sensors. <strong><a title="windows" href="http://in.saint-gobain-glass.com/b2c/default.asp?nav1=app&#38;nav2=outdoor&#38;id=300" target="_blank">Windows</a></strong> are controlled by touch screen technology.</p>
<p>Every floor has two folding windows each, which allow natural daylight and fresh air to enter the house. During summer, cool water running through the floor elements removes excess heat from the entire house with the help of a heat exchanger. Thus surplus energy is stored for use in winter. This ensures minimal energy consumption. 48 solar powered modules with a total capacity of 6.2 KW are installed on the <a title="Rooftop" href="http://in.saint-gobain-glass.com/b2c/default.asp?nav1=app&#38;nav2=outdoor&#38;id=198" target="_blank"><strong>rooftop</strong></a>, which are responsible for supplying all the power required by the pump system.</p>
<p>This green show-house is expected to go a long way in promoting energy-efficient architecture.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Hiren's BootCD v10.0 + Keyboard Patch]]></title>
<link>http://rvsload.wordpress.com/2009/10/07/hirens-bootcd-v10-0-keyboard-patch/</link>
<pubDate>Wed, 07 Oct 2009 16:27:23 +0000</pubDate>
<dc:creator>rvsload</dc:creator>
<guid>http://rvsload.wordpress.com/2009/10/07/hirens-bootcd-v10-0-keyboard-patch/</guid>
<description><![CDATA[Hiren&#8217;s BootCD v10.0 + Keyboard Lot / 185MB Hiren&#8217;s Boot CD is a service better Disc con]]></description>
<content:encoded><![CDATA[Hiren&#8217;s BootCD v10.0 + Keyboard Lot / 185MB Hiren&#8217;s Boot CD is a service better Disc con]]></content:encoded>
</item>
<item>
<title><![CDATA[September 14, 2009]]></title>
<link>http://plufa09m433.wordpress.com/2009/09/14/september-14-2009/</link>
<pubDate>Mon, 14 Sep 2009 23:04:58 +0000</pubDate>
<dc:creator>pluprofedgar</dc:creator>
<guid>http://plufa09m433.wordpress.com/2009/09/14/september-14-2009/</guid>
<description><![CDATA[Today we spent a great deal of time investigating partitions and equivalence relations. In particula]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Today we spent a great deal of time investigating partitions and equivalence relations. In particular we came to the conclusion that partitions and equivalence relations on a set are really the same thing. That is, for every partition, we have an equivalence relation, and for every equivalence relation, we get a partition. </p>
<p>We also continued our exploration of the number systems <img src='http://l.wordpress.com/latex.php?latex=%5Cmathbb%7BZ%7D_k&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\mathbb{Z}_k' title='\mathbb{Z}_k' class='latex' /> as a partition of the integers. These numbers, as well as many other types of equivalence classes and partitions will be very important later in the semester. We investigated these early to start thinking about them as soon as possible. </p>
<p>We did not introduce any further homework problems due this Friday. However, I did mention that you can try Section 0: 18 as a bonus problem.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Discovering the wonders of fstab]]></title>
<link>http://wizandchips.wordpress.com/2009/09/03/discovering-the-wonders-of-fstab/</link>
<pubDate>Thu, 03 Sep 2009 19:12:38 +0000</pubDate>
<dc:creator>wizandchips</dc:creator>
<guid>http://wizandchips.wordpress.com/2009/09/03/discovering-the-wonders-of-fstab/</guid>
<description><![CDATA[I’ve recently had to format my Ubuntu partition because of a Kernel Panic. This happened when I hit ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I’ve recently had to format my Ubuntu partition because of a Kernel Panic. This happened when I hit the “suspend” button in Boxee. The OS freezed still (it didn’t suspend) and there was no way to resurrect it than resetting the system. When I rebooted the there came the Kernel Panic. During the brief unsuccessful efforts to fix the problem I checked the fstab file to see if Boxee did somehow mess with it. I did not know much about fstab so, now that my system is fresh again, I want to discuss the wonders of fstab, this tiny yet superimportant text file.</p>
<p>fstab stands for file system table and it’s basically a configuration file which gives the kernel all the necessary information to mount partitions (usually only the internal ones; external partitions like usb flash drives and similar are mounted via volume managers).  Being a configuration file fstab is located under the /etc directory; to read it you can just locate and open it by the graphical interface, however only root can write to it so if you need to modify it you must access with su (super user) privileges.</p>
<p>Disclaimer: Critical system files in Linux can only be modified by ROOT and not by the user(s). The rationale behind this is to make the system more safe against security attacks and mishandling by users. Having said that, use super user privileges to access system files only if you fall into one of the following categories:</p>
<p>-          You know exactly what you’re doing</p>
<p>-          You’re in an experiment environment</p>
<p>-          Your system is completely and –by your point of view- irrevocably compromised so you judge you have nothing to lose</p>
<p>To read-only your fstab gile in console type:</p>
<p>~$ cat /etc/fstab</p>
<p>To open the fstab file in write mode open a console and type:</p>
<p>~$ sudo gedit /etc/fstab</p>
<p>As I said before the information contained in fstab is plain text, organized in rows and columns and laid out as follows</p>
<p><strong>[device] [mount point] [file system type] [options] [dump] [pass]</strong></p>
<p><strong>[device]</strong> &#62; indicates the device or partition that contains the file system<br />
Note for Ubuntu: Canonical’s distro now uses UUID (<a href="http://en.wikipedia.org/wiki/Universally_Unique_Identifier">Universally Unique Identifier</a>) by default to identify partitions. In order to listyour devices by UUID you can use ~$ sudo blkid</p>
<p><strong>[file system types]</strong> &#62; indicates the type of file system. On Ubuntu you will likely see ext3 or ext4 for the main partition where root resides. Depending on the type of partitions or devices in your computer you could encounter any of the following file system types:</p>
<ul>
<li><strong>ext2, ext3, ext4, reiserfs</strong> (don’t miss the macabre gossip related to this one <a href="http://en.wikipedia.org/wiki/Hans_Reiser">http://en.wikipedia.org/wiki/Hans_Reiser</a>), etc.</li>
<li><strong>auto</strong> (commonly used for removable devices in order to try to detect the specific file system of the device)</li>
<li><strong>vfat</strong> (identify FAT partitions)</li>
<li><strong>ntfs</strong> (identify NTFS partitions)</li>
<li><strong>udf,iso9660</strong> (identify optical media -aka CD/DVD-)</li>
<li><strong>swap</strong> (a hard disk partition where a page of memory is copied to free up that page of memory)</li>
<li><strong>procfs</strong> (stands for process file system and it’s a pseudo file system (dynamically generated at boot) used to access process information from the kernel. The file system is often mounted at the /proc directory and occupies no storage space</li>
</ul>
<p><strong>[options]</strong> &#62; there are several options which specify how the partition is handled and what can or cannot do. I’ll try to cover them briefly here and let you google for them if you need an in depth description.</p>
<ul>
<li><strong>auto / noauto</strong> specify if the partition has to be automatically mounted or not at boot or when mount –a command is executed. auto itself it’s almost useless because it’s the default behavior. noauto is more interesting as it blocks a partition to be mounted unless you manually mount it.</li>
<li><strong>sync / async</strong> are for I/O to the file system and indicate whether it has to be done synchronously (at the same time a I/O operation is issued) or asyinchronously. The meaning of this gets more clear if you imagine to issue a command to execute data transfer to a floppy disk or rw optical media.</li>
<li><strong>exec / noexec</strong> is meant either to allow or prevent execution of binaries within the partition. If you set you’re the partition where root dwells as noexec your system is screwed</li>
<li> <strong>dev / nodev</strong> interpret or not interpret character or block special devices on the file system</li>
<li><strong>ro / rw</strong> is used to specify if the partition is read-only or read-write mounted</li>
<li><strong>suid / nosuid</strong> allow or block operations of suid or sgid bits. Suid and sgid stand for set user id and set group id. When a suid or sgid file is executed, the process which runs it is granted access to system resources based on the user who owns the file and not the user who created the process.</li>
<li><strong>user / nouser</strong> are used to specify the user related permissions to mount the file system. user means that all the users can mount the file system and by consequence of this the noexec, nosuid,nodev options are automatically implied. nouser means instead that only root can mount the file system and this is the default setting.</li>
<li><strong>defaults</strong> uses the default settings which are rw, suid, dev, exec, auto, nouser, async.</li>
<li> <strong>_netdev</strong> is for a network device which has to be mounted after bringing up the network and it’s only valid for nfs (<a href="http://en.wikipedia.org/wiki/Network_File_System_%28protocol%29">Network File System</a>)</li>
</ul>
<p>Note for Ubuntu: from the 8.04 release Ubuntu uses relatime as default for linux native file systems. This options replaces atime and it’s used to know when a file was last used. Read more about atime and relatime <a href="http://lwn.net/Articles/244829/">here</a>.</p>
<p><strong>[dump]</strong> &#62; this field specifies if the backup utility dump is enabled -1- or not -0-. Dump is a application which backs up and restores file systems as a whole. This field is usually set to 0.</p>
<p><strong>[pass] </strong>&#62; this field is related to the fsck system utility. fsck, which stands for “file system check”, is a program which check the state of the file system. In case of a system crash or a forced shutdown fsck</p>
<p>should detect it and then proceed automatically or user guided to fix the damaged parts. The options are the following:</p>
<ul>
<li><strong>0</strong> -&#62; don’t check</li>
<li><strong>1</strong> -&#62; check this partition first</li>
<li><strong>2</strong> -&#62; check this partition next</li>
</ul>
<p>fsck checks the file system every 30 mount operations as default. It’s possible to modify this interval (mostly by using tune2fs)</p>
<p>Here belows my fstab file commented by the system. Try to read it and retrieve the various specifications and options described before. You will surely encounter elements not covered in my description of fstab – i.e. ‘sw’, ‘utf8’ ‘errors=remount-ro’, ecc..- as you possibly will by reading your own fstab. This is common because technologies are for their nature prone to rapid changes and, like systems, tends to accumulates details in times. We have caught a couple of them like relatime and UUID while for the few remaining others you can google them to find more information or issue the command ~$ man fstab in a terminal</p>
<p><span style="color:#008000;"># /etc/fstab: static file system information.<br />
#<br />
# Use &#8216;vol_id &#8211;uuid&#8217; to print the universally unique identifier for a<br />
# device; this may be used with UUID= as a more robust way to name devices<br />
# that works even if disks are added and removed. See fstab(5).<br />
#<br />
# &#60;file system&#62; &#60;mount point&#62;   &#60;type&#62;  &#60;options&#62;       &#60;dump&#62;  &#60;pass&#62;<br />
proc            /proc           proc    defaults        0       0<br />
# / was on /dev/sda5 during installation<br />
UUID=197ac49c-16f9-41a6-9c18-40e87231f4ba /               ext3    relatime,errors=remount-ro 0       1<br />
# swap was on /dev/sda6 during installation<br />
UUID=84365e80-cbc7-495f-9e46-46a852bef3c2 none            swap    sw              0       0<br />
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto,exec,utf8 0       0<br />
/dev/fd0        /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0</span></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[An Evening of Math I]]></title>
<link>http://toomai.wordpress.com/2009/09/01/evening-of-math-i/</link>
<pubDate>Wed, 02 Sep 2009 01:55:57 +0000</pubDate>
<dc:creator>toomai</dc:creator>
<guid>http://toomai.wordpress.com/2009/09/01/evening-of-math-i/</guid>
<description><![CDATA[My wife has taken on the challenge of homeschooling our children this year. My main participation in]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>My wife has taken on the challenge of homeschooling our children this year.  My main participation in this is a weekly math session with the kids in the evening on any subject of my choosing!</p>
<p>Tonight was our first session.  I decided to do partitions with them.  I am priming them to be able to help me with my research on Q1 graphs.</p>
<p>We pulled out cubical blocks and I told the kids to make partitions with them.  The hardest part about this is keeping my mouth shut and staying out of their way.</p>
<p>B invented <a href="http://en.wikipedia.org/wiki/Partition_function_(number_theory)#Ferrers_diagram">Ferrers diagrams</a>.  Meanwhile I set A to work on making all partitions of the small numbers.  She found 1 partition of 1, 2 partitions of 2 and 3 partitions of 3.  She started working on 4 and found 4 partitions.  Then B chimed in with a 5th partition of 4.  This upset A and she refused to accept it as a partition, because it didn&#8217;t follow the pattern that she had seen.  She stormed off, but came back and was ready to accept the 5th partition of 4.</p>
<p>I tried to get them thinking about how we could know that we had got all of them.  They haven&#8217;t come up with anything along those lines yet.  B (of his own volition) started working on an algorithm to generate all of the partitions of a given number.  The algorithm needs work, so far only generating the n partitions of n: (1,1,&#8230;,1), (2,1,1,..,1), (3,1,1,..,1),&#8230;,(n-1,1), (n).  He was also working on an algorithm for getting partitions of n+1 from partitions of n.  I think that one was pretty incomplete too.</p>
<p>Their minds were still going, but it was getting late, so I sent them to bed.  It was a good evening of math.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Passion, Day 31: The Recap.]]></title>
<link>http://untilthirty.wordpress.com/2009/08/31/passion-day-31-the-recap/</link>
<pubDate>Tue, 01 Sep 2009 03:56:51 +0000</pubDate>
<dc:creator>Jonathan</dc:creator>
<guid>http://untilthirty.wordpress.com/2009/08/31/passion-day-31-the-recap/</guid>
<description><![CDATA[My eyes go right to the no-no spot. Can&#39;t help it. So, a month in. Over sixty entries between th]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div id="attachment_489" class="wp-caption alignleft" style="width: 370px"><img class="size-full wp-image-489" title="mission-accomplished" src="http://untilthirty.wordpress.com/files/2009/09/mission-accomplished.jpg" alt="My eyes go right to the no-no spot. Can't help it." width="360" height="522" /><p class="wp-caption-text">My eyes go right to the no-no spot. Can&#39;t help it.</p></div>
<p>So, a month in. Over sixty entries between the two of us.</p>
<p>10 things I learned.</p>
<p>1.I kvetch a lot about giving up my passions; it&#8217;s just barking. Never going to happen.</p>
<p>2.Writing about writing is almost as satisfying as actually writing.</p>
<p>3.Almost.</p>
<p>4.The minute you show contempt for someone else&#8217;s passion, you undercut your own.</p>
<p>5.You have to be comfortable with the things you love. Treating comics like something that belong hidden under your mattress just leads to odd, misplaced guilt.</p>
<p>6.Discomfort also drives passion; we&#8217;re only motivated to be something new when we&#8217;re unsatisfied.</p>
<p>7.I can&#8217;t stop writing. No matter what. It&#8217;s a problem. But it&#8217;s also a pile o&#8217; good.</p>
<p>8.The people you love have to be a part of your passion. You can&#8217;t pick and choose amongst a series of partitions.</p>
<p>9.If you indulge solely for someone else&#8217;s sake, it&#8217;s really hard to find a foothold for your passion. But not impossible.</p>
<p>10.I like making people laugh. I like the venting this blog affords. And I like it best when the two meet.</p>
<p>Tomorrow, we start phase two: Get It Together, a month of organization, lifehacking, new systems, and bad habits.</p>
<p>See you then, for 28 Until 30&#8230;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[GlassBuild America – A Giant Trade Fair]]></title>
<link>http://worldofglasses.wordpress.com/2009/08/25/glassbuild-america-%e2%80%93-a-giant-trade-fair/</link>
<pubDate>Tue, 25 Aug 2009 08:15:51 +0000</pubDate>
<dc:creator>saintgobainglassindia</dc:creator>
<guid>http://worldofglasses.wordpress.com/2009/08/25/glassbuild-america-%e2%80%93-a-giant-trade-fair/</guid>
<description><![CDATA[GlassBuild America is very proudly echoing its name as a very well known trade show in the United St]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a title="GlassBuild America" href="http://www.glassbuildamerica.com/about.htm" target="_blank"><img class="alignright size-full wp-image-85" title="GlassBuild_2009" src="http://worldofglasses.wordpress.com/files/2009/08/glassbuild_2009.jpg" alt="GlassBuild_2009" width="280" height="132" />GlassBuild America </a>is very proudly echoing its name as a very well known trade show in the United States. GlassBuild America placed itself in the list unveiled by the Tradeshow Week magazine, as one of the top 200 trade shows in North America. GlassBuild America is an affair, which largely gathers the glass, doors and windows professionals in North America. This grand affair is going to be held from 30<sup>th</sup> September to 2<sup>nd</sup> October – 2009 at Georgia World Congress Center, Atlanta, GA.</p>
<p><strong>Organizers</strong></p>
<p>This event is organized by the National Glass Association along with its partner organizations namely the American Architectural Manufactures Association, the Glass association of North America, the Insulating Glass Manufactures Alliance and the Bath enclosure Manufactures Association, GlassBuild America. This event unites the large number of audience not found anywhere else. GlassBuild America will definitely help the exhibitors business to move to the next higher level.</p>
<p><strong>Thousands of industry professionals</strong></p>
<p><img class="alignleft size-full wp-image-86" title="GlassBuildAmerica" src="http://worldofglasses.wordpress.com/files/2009/08/glassbuildamerica.jpg" alt="GlassBuildAmerica" width="255" height="163" />More than 9000 professionals from various industries are assembling in GlassBuild America, every year. The same case is expected in this year too. Decision makers from all facets of the glass, windows and doors industries, from several companies with a great target of achieving commercial and architectural markets to manufacturers focusing on products for the construction and remodeling of the residents attend this GlassBuild America.</p>
<p><strong>Exhibit space and Exhibits</strong></p>
<p>GlassBuild America nearly covers an exhibit area of about 200,000 square-feet. This trade show features the exhibits covering the wide spectrum of glass, window and door industries. The Exhibits includes glass processing equipment, windows and door manufacturing equipments, <a title="partitions" href="http://in.saint-gobain-glass.com/b2c/default.asp?nav1=app&#38;nav2=indoor&#38;id=346" target="_blank">partitions</a> and also the latest technologies for all <a title="types of glass" href="http://in.saint-gobain-glass.com/b2c/default.asp?nav1=pr" target="_blank">types of glass </a>and fenestration products.</p>
<p><strong>Industry leaders</strong></p>
<p>GlassBuild America is the one and only shows conducting in the combination with the Industry’s leading publications – Glass Magazine and Window &#38; Door and with the industry’s major trade associations – National Glass Association (NGA), American Architectural Manufactures Association (AAMA), Glass Association of North America (GANA), Insulating Glass Manufacturers Alliance (IGMA) and Bath Enclosure Manufacturers Association (BEMA)</p>
<p><strong>Exhibitor profile</strong></p>
<p>Exhibitors will exhibit their various products are from different departments. The exhibitor profile includes curtain walls and storefront system suppliers, <a title="glass manufacturers" href="http://in.saint-gobain-glass.com/b2c/default.asp" target="_blank">glass manufacturers </a>and fabricators, suppliers of all types of flat glass processing equipments, suppliers of machinery of fabricating aluminum, vinyl and other types of framing materials, windows and doors system suppliers, insulating glass machinery manufacturers, bath enclosures and <a title="mirrors" href="http://in.saint-gobain-glass.com/b2c/default.asp?nav1=app&#38;nav2=indoor&#38;id=354" target="_blank">mirror</a> manufacturers, <a title="solar control" href="http://in.saint-gobain-glass.com/b2c/default.asp?nav1=pr&#38;nav2=single%20pane&#38;id=18494" target="_blank">solar</a> panel manufacturers and suppliers and so on.</p>
<p><strong>Visitor profile</strong></p>
<p>Visitors profile includes manufacturers/fabricators of commercial and/or glass products, manufacturers of residential <a title="glass windows" href="http://in.saint-gobain-glass.com/b2c/default.asp?nav1=app&#38;nav2=outdoor&#38;id=300" target="_blank">glass windows </a>and <a title="glass doors" href="http://in.saint-gobain-glass.com/b2c/default.asp?nav1=app&#38;nav2=indoor&#38;id=357" target="_blank">glass doors</a>, glazing contractors, dealers and distributors of residential windows and doors, dealers or retailers of commercial and/or residential glass products, distributors/wholesalers of commercial and/or residential glass products, architects or contractors and so on.</p>
<p><strong>Global Fair Alliance</strong></p>
<p>GlassBuild America has combined with Fensterbau/Frontale, fenestration china and Istanbul window to form the Global Fair Alliance on April 24<sup>th</sup>, 2008 at Washington. The main motive of this alliance is to help the exhibitors and visitors to easily recognize those four organizations as the world’s leading events for windows and façade industries.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[FREE SOFTWARE - PARAGON]]></title>
<link>http://omfgjeannie.wordpress.com/2009/08/04/free-software-paragon/</link>
<pubDate>Wed, 05 Aug 2009 05:17:17 +0000</pubDate>
<dc:creator>OMFGJEANNIE</dc:creator>
<guid>http://omfgjeannie.wordpress.com/2009/08/04/free-software-paragon/</guid>
<description><![CDATA[Paragon is a ntfs reader/writer for the mac and usulaly costs $60 but you can get it free today! ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Paragon is a ntfs reader/writer for the mac and usulaly costs $60 but you can get it free today! &#8230;well i got it yesterday. i deno if it still works today but its worth a shot! <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>but yeah, you should totally get it. especially if you want to be able to read/write to a windows partition/harddrive <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p><a title="download link" href="http://www.v3.co.uk/articles/download/2207317">http://www.v3.co.uk/articles/download/2207317</a></p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
