Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Mailing Lists -> Oracle-L -> Re: CPU speed comparison

Re: CPU speed comparison

From: Tanel Põder <>
Date: 2005-12-23 20:36:18
Message-id: 028401c607f8$343d1520$1ebc21c8@porgand


Depending on how big your system's will grow, you might not want to worry about CPU speeds \ at all, but scalability instead (e.g. what's the memory bus speed and bandwidth, how many \ concurrent snoop (for detecting potential memory lines in other CPU's caches) or memory \ operations can be done on bus etc.

Btw, this script is not testing just LIOs, it's testing single row calls from PL/SQL loop \
(which might be heavily optimized in 10g), thus it's not good for benchmarking plain LIOs \
(as most of the time could be spent in PL/SQL engine instead..)

I would build a sample table with representative data set, with representative indexes, \ perform queries which would be ran in production and made some conclusions from there, \ e.g.

Indexed unique single-row access path -> X LIOs per query, query completed in X sec Indexed range scan (returning constant number of rows), X LIOs per query -> query \ completed in X sec
Full table scan (returning all or no rows) -> X LIOs per query -> query completed in X sec Nested loop to child table using indexed access path (as this can have few optimizations \ which affect LIO resource usage, like keeping buffers pinned if a next visit is believed \ to come immediately)
and so on.

Also, you should keep your reference data and queries constant, even the column ordering \ or predicate ordering in SQL query might affect CPU usage for LIOs.

And you got to do all of this on multiple CPUs in parallel -> there might be several \ scalability differences across platforms/versions, such shared read only cache buffer \ chain latch gets etc.

You could go from 1 serial job to CPU_COUNT * 3 parallel ones increasing number of jobs by \ one and measuring the curve how performance degrades. That could give you a rough idea


  Hi Gurus,

  Firstly Wish you all Merry Christmas.

     We have a banking application and I am in the process of doing a CPU Capacity \ prediction of the DB server based on the Ratio Modelling Technique. I have arrived at the \ CPU requirements for particular platform(Say Itanium2) and now I want to arrive at the CPU \ numbers for the other Server platforms(PA-RISC, IBM PowerV/VI, Intel Xeon, Ultrasparc \ IV/III).   Say for a given volume set I arrive at a 2 CPU Itanium2, Now how do I arrive at CPU \ numbers for the other platforms. Any inputs/pointers would very much be appriciated.

  I looked at and feel that we can use \ this script for the said comparison provided the underying assumption is correct. The \ scripts basic assumption is using LIO's to determine the CPU usage . Run this script in \ various platforms and use the CPU usage figure across platforms to arrive at the \ comparitive numbers. Does this approach sound logical?

  In this effect, I remembered rading Cary's papaer "Why You Should Focus on LIOs Instead \ of PIOs" and I found the following comment from the author   

  The actual use of Oracle block content is the number one consumer of CPU capacity on any \ reasonably well optimized Oracle system. Your average LIO latency will vary, depending \ primarily upon your CPU speed and the total number of machine instructions required to \ parse the content of an Oracle block   

  Thanks and Regards

  Sriram Kumar Received on Fri Dec 23 2005 - 20:36:18 CST

Original text of this message