How to mesure/benchmark performance of a new database on new server?

Hi there
I have two oracle servers with following (same) details:
RHEL 5.8 64-bit
Oracle 10gR2 - 10.2.0.5.8
ASM 10gR2 - 10.2.0.5.8
Server A: RAM 32GB, 8 CPUs @ 3.00GHz
Server B: RAM 128GB, vCPUs 16 cores
Server A (physical server) already has a database A. Server B (on VMWare - yes, my client is moving all Oracle servers to VMware for whatever reason) is a new installation and new database B with exact same init params as databas A. I expdp the data from database A and impdp into database B.
As per the hardware team, the hardware is better than the old server B. I did a very basic test to check if new DB performs better than that on physical server. Here is the results:
I ran a simple query to create a new table. The original table (say, table_a) contains 1.7+ million rows and size is 2.2GB.
create table test1
as
select * from table_a;
It took 3:28mins on database B while it took only 1:55mins on database A. So the new database B seems to be performing poor (apparently). Then I looked at the explain plan (not sure if it means much because it s a very simple query) and here it is from both databases:
Database A (physical server
Plan
SELECT STATEMENT ALL_ROWS
Cost: 14,052  Bytes: 2,161,302,003  Cardinality: 16,250,391 
1 TABLE ACCESS FULL TABLE table_a
Cost: 14,052  Bytes: 2,161,302,003  Cardinality: 16,250,391 
Database B (virtual server)
Plan
SELECT STATEMENT ALL_ROWS
Cost: 59,844  Bytes: 2,161,302,003  Cardinality: 16,250,391 
1 TABLE ACCESS FULL TABLE table_a
Cost: 59,844  Bytes: 2,161,302,003  Cardinality: 16,250,391 
Questions:
1. Why is the cost different? Should I "compute statistics" on database B (virtual server)?
2. How to investigate further and find out reason for the time difference?
3. What other benchmark test can I run to make sure that I have the right database configuration?
Not sure if this is enough info - if not, please let me know what else should I provide.
The team I have to hand-over this server is refusing to accept it by saying that it is slower than the existing one.
Please advise!
Best regards

Wow... I am really thankful for everyone's input - this is really really appreciated!
I will try what you all have suggested. In the meantime, I did some simple test on both databases and here are the results:
Create table t1
  (1.7million rows)
Create index on
  two columns on t1
Create table t2
  500000 rows
Create Index on
  two columns on t2
Delete from t1
  (500000 rows)
Insert into t1
  500000 rows
Drop  table t2
Drop table t1
Database A
hh:mm:ss.00
hh:mm:ss.00
hh:mm:ss.00
hh:mm:ss.00
hh:mm:ss.00
hh:mm:ss.00
hh:mm:ss.00
hh:mm:ss.00
1st run
00:01:55.78
00:02:12.59
00:00:03.06
00:00:01.99
00:01:25.56
00:00:10.37
00:00:00.15
00:00:05.12
2nd run
00:01:56.27
00:02:11.54
00:00:02.89
00:00:01.09
00:01:18.39
00:00:10.20
00:00:00.17
00:00:04.87
3rd run
00:01:56.71
00:02:12.36
00:00:03.14
00:00:01.13
00:01:22.97
00:00:10.22
00:00:00.15
00:00:04.88
Database B (VM)
hh:mm:ss.00
hh:mm:ss.00
hh:mm:ss.00
hh:mm:ss.00
hh:mm:ss.00
hh:mm:ss.00
hh:mm:ss.00
hh:mm:ss.00
1st run
00:00:25:83
00:03:54.60
00:00:00.67
00:00:01.43
00:00:29.56
00:00:09.75
00:00:00.05
00:00:01.10
2nd run
00:00:24.67
00:03:05.81
00:00:00:62
00:00:01.10
00:00:31.76
00:00:08.59
00:00:00.04
00:00:00.59
3rd run
00:00:44.06
00:03:12.91
00:00:00.97
00:00:01.62
00:00:39.35
00:00:08.90
00:00:00.03
00:00:00.61
Now, the database on Server B (VMware) seems to be outperforming that on Server A except for the "Create index on two columns on t1" column.
Any clues why index creation is consistently taking longer on the database B (on VM) as compared to that on database A (physical server)?
@jgarry: I am not in a position to try SLOB (no doubt a good tool with lots of reputation) because it requires to create a new DB (which I cannot do on the existing server). I did try "HammerDB" but unfortunately it crashed on each attempt to test the load.

Similar Messages

  • How to modify stored procedures in SQL Azure database in SQL server express 2012

    Hi,
    I want to modify stored procedures in SQL Azure database in SQL Server Express 2012. But when right click on the stored procedure in Object Explorer, there is no option "Modify" as for SQL Server database. I wonder how to modify stored procedures in SQL
    Azure database in SQL Server Express 2012. Thanks.
    York

    Hi,
    Not sure whay there is no modify..
    As a workaround can you try this and see if you can modify proc..
    Script Procedure As-> Alter To->New query window..
    - Chintak (My Blog)

  • How to install a Business Contact Manager 2013 database on SQL Server 2014

    When I use the BCM Database Tool 2013 to create a database on a server, it doesn't pick up on any of my SQL Server 2014 instances. So far I can only get it to pick up SQL Server 2008 R2 instances in order to install the BCM database.
    Someone  mentioned that it works with SQL Server 2012, so is there any way to get it work on the 2014 version? I don't want to have to install 2008 or 2012 just for the sake of BCM.

    event if 3355 means 3 things:
    The SQL Server might be offline.
    The SharePoint Foundation database access account might not have the necessary permissions to communicate with the SQL Server.
    A firewall that runs on either the local server or on SQL Server might be blocking network communications.
    Big question, how you trying to connect SQL  windows or sql authentication? is it throwing error on Config wizard or somewhere else?
    Please remember to mark your question as answered &Vote helpful,if this solves/helps your problem. ****************************************************************************************** Thanks -WS MCITP(SharePoint 2010, 2013) Blog: http://wscheema.com/blog

  • How to determine who performed the last full database dump before cumulative dump

    Hello,
    ASE 15.7 SP100 allows cumulative backups, and if cumulative dump is tried before a full dump, ASE shows this error:
    You cannot execute an incremental dump before a full database dump.
    From my experiments, it seems that it does not matter how the full dump is performed (by native isql, or by a 3rd party API). As long as a full dump is done on a database, ASE seems to be keeping track of all the changed pages since the last full dump. So this means that you can perform a full dump using a 3rd party API, and then on isql, if you run a cumulative dump command, the cumulative dump succeeds, which is based on the last full dump by another library!
    So, my question is: is there any way to programmatically determine how (by native isql or 3rd party) the last full backup was performed? I believe $SYBASE_HOME/ASE-15_0/dumphist contains this info, but it requires 'enable dump history' to be set first, and I am looking for a solution which does not involve checking a disk file.
    Thanks,
    Ali

    Dear Mr Razib,
    I have not explored the feature but ASE autiding might provide you the possibility to access information on past database dumps via SQL.
    Apart from that - I am not aware of an SQL interface to the dumphist file (would be nice to have, I agree)
    Enabling dump history is definitley highly recommended  (in my opinion) .
    There is yet another feature which might help you to prevent an DBA from dumping databases and transactions to various locations.
    When you create a DUMP CONFIGURATION and additionally set parameter
            enforce dump configuration
    ASE will prevent normal (free style) DUMP commands but enforce the use of an existing dump configuration. The mechanism is not fool proof (nothing prevents from creating yet another dump configuration on the fly) - but at least something.
    With kind regards
    Tilman Model-Bosch

  • How to improve Query performance on large table in MS SQL Server 2008 R2

    I have a table with 20 million records. What is the best option to improve query performance on this table. Is partitioning the table into filegroups  is a best option or splitting the table into multiple smaller tables? 

    Hi bala197164,
    First, I want to inform that both to partition the table into filegroups and split the table into multiple smaller tables can improve the table query performance, and they are fit for different situation. For example, our table have one hundred columns and
    some columns are not related to this table object directly (for example, there is a table named userinfo to store user information, it has columns address_street, address_zip,address_ province columns, at this time, we can create a new table named as Address,
    and add a foreign key in userinfo table references Address table), under this situation, by splitting a large table into smaller, individual tables, queries that access only a fraction of the data can run faster because there is less data to scan. Another
    situation is our table records can be grouped easily, for example, there is a column named year to store information about product release date, at this time, we can partition the table into filegroups to improve the query performance. Usually, we perform
    both of methods together. Additionally, we can add index to table to improve the query performance. For more detail information, please refer to the following document:
    Partitioning:
    http://msdn.microsoft.com/en-us/library/ms178148.aspx
    CREATE INDEX (Transact-SQL):
    http://msdn.microsoft.com/en-us/library/ms188783.aspx
    TechNet
    Subscriber Support 
    If you are
    TechNet Subscription user and have any feedback on our support quality, please send your feedback
    here.
    Allen Li
    TechNet Community Support

  • In general how is T series performance for data warehousing databases ~1 TB

    Hi,
    I am planning to use a Sun T3-2 for a data warehouse app. Oracle 11g around a 1 TB worth of data and batch jobs and ~ 200 concurrent users.
    We are using HP UX Superdome server now ( node partition of 8 physical CPU's 750 Mhz ).
    I know that the T series servers are good for highly multi threaded application. Can I consider the database 11g as a highly multithreaded app ?
    How about the batch jobs which run long SQL jobs, I don't think those can be considered multithreaded.
    Anyone is using these T series srevers for databases around a TB size ?
    Please suggest.
    Thanks ..

    The T3-2 can do much more work then the old Superdome, but the T3-2 won't run single threaded queires significantly faster then the old Superdome, it will just be able to run about 100x more of them.
    If you care most about price/performance look at the X4800 or X4450 servers.
    If you care most about availablity and performance look at the M4000/M5000 servers
    My experience with coolthreads servers for Oracle DB is be 100% sure what you're doing isn't single thread dependent before deploying.

  • How to restore RMAN hot backup to another database on another server?

    I want to know how to restore RMAN hot backup from production server to another database on a testing server.
    The hot backup is from a database named PROD on the production server
    The database to be restored with the hot backup is TEST on the testing server. There is already a PROD database on the testing server and this PROD database must be kept.
    I have read some threads about changing initTEST.ora to PROD to restore such backup but (I think) will not work in my case since I already have a PROD database on the testing server.
    The version is 11gR2 on Linux but the compatible parameter is set to 10.2.0.1.0.
    Thanks for any help.

    Hi,
    Since you are on 11g, hope this helps you http://shivanandarao.wordpress.com/2012/04/28/duplicating-database-without-connecting-to-target-database-or-catalog-database-in-oracle-11g/
    881656     
    Handle:     881656
    Status Level:     Newbie
    Registered:     Aug 25, 2011
    Total Posts:     53
    Total Questions:      31 (31 unresolved)
    Looks like forum is of no help to you. To get better responses, consider closing your threads by providing appropriate points if you feel that they have been answered. Keep the forum clean !!

  • How to Create new database from cold backup files.

    Dear Experts,
    I have an oracle 10g databae on windows 2003 server.
    The database is in Archive log mode and backup strategy is Taking cold backup ever night.
    Backup steps:
    shut down database.
    copy data files, control files, redo logs, archive logs and parameter files to safe location.
    Startup.
    I have taken a backup at Tuesdaay 1AM and I have archive logs also.
    On Wednesday, I want to Create a new database on another server with the available cold backup files and archive logs. I want to recover the database upto 4PM Wednesday. How can I do this.
    I am not using control file auto backup or control file backup to trace.
    Please help me how can I do this. I am new to oracle database Administration.
    --Thanks                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    The steps :
    shut down database.
    copy data files, control files, redo logs, archive logs and parameter files to safe location -- you mean the alternate location for the new databaseare correct (except that I would say "alternate location for the new database").
    If you do not have controlfile backups, you cannot either OPEN the database or RECOVER the database until and unless you CREATE the Controlfiles. You have to generate a CREATE CONTROLFILE script using a BACKUP CONTROLFILE TO TRACE from the Production serer and create the controlfile on the new server.
    BEFORE the Startup, I would use
    RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL;The "using backup controlfile" tells Oracle to continue attempting Recovery -- ie doing a RollForward -- till the last archivelog made available to it.
    For the Recover command, you then keep applying the ArchiveLogs from the Tuesday 1am ColdBackup upto Wednesday 4pm.
    Once you have applied the last ArchiveLog, you do an
    ALTER DATABASE OPEN RESETLOGS;Here are my notes of doing a RollForward "Recovery" from a Cold Backup :
    http://hemantoracledba.blogspot.com/2007/05/rollforward-from-cold-backup.html
    If you are attempting all these steps on a different server from your current Production database, you should be safe.
    Once you OPEN the database, you can use CREATE CONTROLFILE or the NID utility to rename the database.
    If you are attempting to create the new database on the same server there are many other precautions you have to take and unless you have experience with cloning databases, I would advice you against doing so (only the RMAN DUPLICATE DATABASE command has a safer method of cloning a database).
    Hemant K Chitale
    http://hemantoracledba.blogspot.com

  • Creating a new database containing part of an existing database,same server

    Hi All Experts,
    I have a problem. I am trying to create a new database on a server which already has a database (named qadb10g) running on it. I want the new database to contain only a few tablspaces of the "qadb10g" database. I tried this approach.
    1. Take an RMAN backup of the desired tablespaces from the source database (qadb10g), including system and undo tablespaces as well.
    2. Use "SET NEWNAME FOR DATAFILE ..." RMAN commands to restore all the data files in the new disk location on the same server.
    3. Run "ALTER DATABASE BACKUP CONTROLFILE TO TRACE" command in the "qadb10g" database to generate a "create controlfile...." script.
    4. Edit the resulting file (from step 3) to change file locations and database name, instance name, etc.
    5. Create a new init.ora file for the new database.
    6. From an sql*plus session, with "ORACLE_SID" already set to new database name, run the "create controlfile ..." script which we generated and changed above.
    I performed steps 1-5 successfully, But when I ran the step 6 command, I got an error saying "Datafile Header contains database name 'qadb10g' which is not maching the <newdb name> .....".
    This means, the database datafiles which were backed up and restored from the 'qadb10g' database still contain the same db name in their header and this is preventing new control file from being created. So, the new datbase cannot be created. Can anbody help me how to resolve this problem???
    Any urgent help would be greatly appreciated. Thanks in advance.

    At Step 4, did you use the SET <newdbname> in the create controlfile script ?
    At Step 5, did you change the db_name in the pfile ?
    nid is the new and easier way to change the database name.

  • MOVE REPLICATION DATABASE TO NEW SERVER

    WE HAVE A PRODUCTION DATABASE THAT WORK'S AS REPLICATION FROM 9 DATABASES, WE ARE GOING TO MOVE DATABASE TO NEW SERVER.
    AS DATABASE IS PRODUCTION, WE CAN NOT STOP SERVICES. WE THINK TO CREATE A NEW DATABASE ON NEW SERVER, IMPORT DATA FROM PROD. DATABASE. SIZE APROX 100GB.
    QUESTION:
    I NEED TO KNOW HOW I CAN STOP SERVICES SHORT TIME. TO CHANGE TO SNEW SERVER.
    THANKS FOR YOUR SUGGESTIONS

    Здравствуте Ivan.
    Before i would do anything like this i would make sure that i have a good valid backup (just in case!).
    I would check all the applications that are currently conencting to your ORacle and make sure they are all conneting 'by name' not the IP. Or and then i would check DNS server (make sure nslookup is working) to makesure that everything resolves correctly after the moving DB to another machine.
    Then check that the oracle_home etc are in the same directory and check that all paths etc in the configurations are the same.
    Hope this helps
    Kind Regards

  • SOA 10.1.3.5  - cloning and pointing to a new database

    We plan to move a web application to a new server and here is the information:
    The front-end is SOA suite 10.1.3.5; application was built with Jdeveloper and ADF; BPEL process Manager is not used; Enterprise Service Bus is not used.
    the backend is a Oracle database.
    Old server: Windows server 2003, currently hosting SOA and the database;
    New server: Windows server 2008.
    We need to move both front-end and back-end to the new server. I know how to move the database.
    I would like to know if either of the following is possible:
    1. Clone SOA suite to the new server, and let it point to the new database on the server;
    2. Install SOA 10.1.3.1 on the new server, and upgrade it to 10.1.3.5. Then move the deployed instance from the old server to the new one, and point it to the new database.
    I have read chapter 9 of SOA administrator guide, but not sure if the cloned instance can point to the new database. Please help. Thank you!
    Hailie

    Hello
    Maybe this Metalink note would be helpful for you 757381.1

  • Urgent !! create a new database

    Please assist,
    how do I create a new database
    Solaris 9 server Oracle9i
    Thank you.

    You might want to set your environment variables before starting dbca.
    Depending on the shell you are running it may be one fo the following:
    setenv ORACLE_SID HRDB
    export ORACLE_SID=HRDB
    setenv ORACLE_HOME /u1/ora902
    export ORACLE_HOME=/u1/ora902
    Make sure you have the correct priviliges on all the directories.
    Then start the application.
    I usually do mine manually which is describe in the same guide as mentioned before.
    http://download.oracle.com/docs/cd/B10501_01/server.920/a96521/create.htm#1656
    Regards
    Tim

  • Generate New Database Job Not Working

    I am trying to synchronize my web client with the server database and when I run the Generate New Database job (Administration - Server Management > Jobs), the job fails with the error SBL-GDB-00004: Error in Main Function.
    The logs say:
    2021 2010-08-05 11:09:28 2010-08-05 11:10:30 -0400 00000092 001 ffff 0001 09 GenNewDb 55574531 32352 1082539552 /siebel_8.2/siebsrvr/enterprises/SBA_82/sbllnx/log/GenNewDb_0053_55574531.log 8.2 [22117] ENU
    DBCLog     DBCLogError     1     000013994c570f29:0     2010-08-05 11:09:28     [DataDirect][ODBC lib] System information file not found. Please check the ODBCINI environment variable.
    GenericLog     GenericError     1     000013994c570f29:0     2010-08-05 11:09:28     SQL Message, IM002: [DataDirect][ODBC lib] System information file not found. Please check the ODBCINI environment variable.
    DBCLog     DBCLogError     1     000013994c570f29:0     2010-08-05 11:09:38     [DataDirect][ODBC lib] System information file not found. Please check the ODBCINI environment variable.
    GenericLog     GenericError     1     000013994c570f29:0     2010-08-05 11:09:38     SQL Message, IM002: [DataDirect][ODBC lib] System information file not found. Please check the ODBCINI environment variable.
    DBCLog     DBCLogError     1     000013994c570f29:0     2010-08-05 11:09:48     [DataDirect][ODBC lib] System information file not found. Please check the ODBCINI environment variable.
    GenericLog     GenericError     1     000013994c570f29:0     2010-08-05 11:09:48     SQL Message, IM002: [DataDirect][ODBC lib] System information file not found. Please check the ODBCINI environment variable.
    DBCLog     DBCLogError     1     000013994c570f29:0     2010-08-05 11:09:58     [DataDirect][ODBC lib] System information file not found. Please check the ODBCINI environment variable.
    GenericLog     GenericError     1     000013994c570f29:0     2010-08-05 11:09:58     SQL Message, IM002: [DataDirect][ODBC lib] System information file not found. Please check the ODBCINI environment variable.
    DBCLog     DBCLogError     1     000013994c570f29:0     2010-08-05 11:10:08     [DataDirect][ODBC lib] System information file not found. Please check the ODBCINI environment variable.
    GenericLog     GenericError     1     000013994c570f29:0     2010-08-05 11:10:08     SQL Message, IM002: [DataDirect][ODBC lib] System information file not found. Please check the ODBCINI environment variable.
    DBCLog     DBCLogError     1     000013994c570f29:0     2010-08-05 11:10:18     [DataDirect][ODBC lib] System information file not found. Please check the ODBCINI environment variable.
    GenericLog     GenericError     1     000013994c570f29:0     2010-08-05 11:10:18     SQL Message, IM002: [DataDirect][ODBC lib] System information file not found. Please check the ODBCINI environment variable.
    GenericLog     GenericError     1     000013994c570f29:0     2010-08-05 11:10:28     Error creating SQL Anywhere database template file (UTLOdbcConnect DBA/siebelmobiledb).
    GenericLog     GenericError     1     000013994c570f29:0     2010-08-05 11:10:28     Error in MainFunction (CreateDbTemplateFile)
    GenericLog     GenericError     1     000013994c570f29:0     2010-08-05 11:10:29     (gennewdb.cpp (610) err=524292 sys=2) SBL-GDB-00004: Error in Main function.
    GenericLog     GenericError     1     000013994c570f29:0     2010-08-05 11:10:29     (smisched.cpp (911) err=524292 sys=0) SBL-GDB-00004: Error in Main function.
    Anyone encountered this before?
    Thanks,
    Bernhard

    Hi,
    Make sure to set the ODBCINI environment variable. The variable must point to the path from the root directory to the system information file where your data source resides. The system information file can have any name, but the product is installed with a default file called odbc.ini in the product installation directory.
    For example, if you use an installation directory of /opt/odbc and the default system information file, from the Korn or Borne shell, you would enter:
    ODBCINI=/opt/odbc/odbc.ini; export ODBCINI
    From the C shell, you would enter:
    setenv ODBCINI /opt/odbc/odbc.ini
    Regards,
    Joseph

  • New database creation problem

    While we are trying to create new database in test server it getting below error.
    Error:

    Hello,
    There may be session accessing the model database, and that prevents the creation of the new database. This is by design; an exclusive lock is required on model database by SQL Server, since it needs to create the new database from a copy of the model database.
    Run the sp_who2 to know which session has opening the model database.
    Hope this helps.
    Regards,
    Alberto Morillo
    SQLCoffee.com

  • How to Improve the Performance of SQL Server and/or the hardware it resides on?

    There's a particular stored procedure I call from my ASP.NET 4.0 Web Forms app that generates the data for a report.  Using SQL Server Management Studio, I did some benchmarking today and found some interesting results:
    FYI SQL Server Express 2014 and the same DB reside on both computers involved with the test:
    My laptop is a 3 year old i7 computer with 8GB of RAM.  It's fine but one would no longer consider it a "speed demon" compared to what's available today.  The query consistently took 30 - 33 seconds.
    My client's server has an Intel Xeon 5670 Processor and 12GB of RAM.  That seems like pretty good specs.  However, the query consistently took between 120 - 135 seconds to complete ... about 4 times what my laptop did!
    I was very surprised by how slow the server was.  Considering that it's also set to host IIS to run my web app, this is a major concern for me.   
    If you were in my shoes, what would be the top 3 - 5 things you'd recommend looking at on the server and/or SQL Server to try to boost its performance?
    Robert

    What else runs on the server besides IIS and SQL ? Is it used for other things except the database and IIS ?
    Is IIS causing a lot of I/O or CPU usage ?
    Is there a max limit set for memory usage on SQL Server ? There SHOULD be and since you're using IIS too you need to keep more memory free for that too.
    How is the memory pressure (check PLE counter) and post results.
    SELECT [cntr_value] FROM sys.dm_os_performance_counters WHERE [object_name] LIKE '%Buffer Manager%' AND [counter_name] = 'Page life expectancy'
    Check the error log and the event viewer maybe something bad there.
    Check the indexes for fragmenation, see if the statistics are up to date (and enable trace flag 2371 if you have large tables > 1 million rows)
    Is there an antivirus present on the server ? Do you have SQL processes/services/directories as exceptions ?
    There are lot of unknowns, you should run at least profiler and post results to see what goes on while you're having slow responses.
    "If there's nothing wrong with me, maybe there's something wrong with the universe!"

Maybe you are looking for