are LIOs always relavent?
- From: ryan_gaffuri@xxxxxxxxxxx
- To: oracle-l@xxxxxxxxxxxxx
- Date: Fri, 30 Jun 2006 21:52:54 +0000
This is going to long, but its interesting. I hope it's worth the read. I am performing a few tests. Here is the basic framework of the tests. Test 1: GTT joined to Heap table on a unique index and the data is perfectly colocated(ordered and dense) Test 2: GTT joined to List partitioned table on a unique index. It is now two columns. It leads with the same unique column in the first test and the second column in a partition key. The data is perfected colocated. Our GTT has 5,000 rows and 20,000 rows. We are using dynamic sampling 2. 10G release 2. The data in the GTT are perfectly colocated. All the rows in a GTT match the rows in one partition in the list partitioned table. The base tables are identical accept for partition. Exact same data. They have between 20 million and 200 million rows. Tables are analyzed with autosample size option. Test Code: 1. Same queries for both. The partitioned tables use queries that include the partition key. 2. Open 1,10,20,50,100 threads. 3. For 1 thread grab tkprof. Use awrpt for multiple threads. Sometimes I grabbed 10046 for multiple threads, but it was skewing my system results. 4. No one query is the bottleneck. All of them have somewhat comparable results. 5. We tested 8 queries run in a stored procedure. 6. We bounce all relavent tablespaces between tests and flush the shared pool. Results: 1. Elapsed time is about the same. CPU is about the same. Physical IO is a little higher for the non-partitioned tables. 2. We noticed a 20-50% spike in LIOs for the partitioned tables depending on the number of threads we run. When we look at the row source in the tkprof output the increase is almost entirely on 'partition list iterator'. First off. Has anyone seen a spike in LIO do to the partition list iterator row source and second off, if my LIOs are so much higher how come I do not see an increase in elapsed time or CPU? We tested this understress with up to 100 threads. Does not appear to affect CPU or response time. Part of that may be because we have less waits with partition tables under stress. I will try a higher dynamic sampling. However, I am not sure it matters if CPU and elapsed time are not effected. I believe Mogens Noorgaard had a chapter in the oak table book about some LIOs are more costly than others, but we don't have the granualarity to tell yet? I don't have a production system to test the effects against something life. Its still in development. I am putting this on asktom also. I hope no one minds.