I’m trying to compare two types of database servers and it looks like one has a faster CPU than the other. But, the benchmark I have used runs a complicated variety of SQL so it is hard to really pin down the CPU performance. So, I made up a simple query that eats up a lot of CPU and does not need to read from disk.
First I created a small table with five rows:
create table test (a number); insert into test values (1); insert into test values (1); insert into test values (1); insert into test values (1); insert into test values (1); commit;
Then I ran a query Cartesian joining that table to itself multiple times:
select sum(t1.a)+ sum(t2.a)+ sum(t3.a)+ sum(t4.a)+ sum(t5.a)+ sum(t6.a)+ sum(t7.a)+ sum(t8.a)+ sum(t9.a)+ sum(t10.a) from test t1, test t2, test t3, test t4, test t5, test t6, test t7, test t8, test t9, test t10;
Then I used one of my profile scripts to extract the CPU. Here is a typical output:
SUBSTR(TIMESOURCE,1,30) SECONDS PERCENTAGE ------------------------------ ---------- ---------- TOTAL_TIME 32 100 CPU 32 100
I edited the output to make it fit. The profile shows the time that the query spent on the CPU in seconds.
I tried multiple runs of the same query and kept adding tables to the join to make the query longer.
This zip includes the sql scripts that I ran and my spreadsheet with the results: zip
I was comparing an Itanium and a Xeon processor and the test query ran in about half the time on the Xeon. I realize that this is not a complete benchmark, but it is some information. My other testing is not targeted specifically to CPU but I also saw a significant CPU speed-up there as well. So, this simple query adds to the evidence that the Xeon processor that I am evaluating is faster than the Itanium one.