Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. SQL Server 64 bit Performance Testing [modified]

SQL Server 64 bit Performance Testing [modified]

Scheduled Pinned Locked Moved The Lounge
databasesql-serversysadminwindows-admintesting
8 Posts 6 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Offline
    T Offline
    Turtle Hand
    wrote on last edited by
    #1

    Recently I’ve upgraded a production DB Server from the 32 bit versions of Windows Server 2003 and SQL 2005 to the 64 bit versions. The primary reason for this upgrade was the ability to utilize the 8gb of RAM available. Before I did this upgrade I ran a benchmark test (see below) by inserting 1 million rows into a table. I ran this test 5 times to flatten out the true performance. The benchmark results: 32 BIT RESULTS 1.) 20:24 2.) 17:12 3.) 10:10 4.) 10:24 5.) 10:51 Average of top 3: 10:28 After the upgrade I ran the same test, here are the results: 64 BIT RESULTS 1.) 2:30 2.) 2:31 3.) 2:25 4.) 2:26 5.) 2:23 Average of top 3: 2:25 The 64 bit version SMOKED the 32 bit version; even I wasn’t prepared for this kind of improvement! All this for no increase in cost; both Windows Server and SQL Server 64 bit versions cost the same as the 32 bit versions. The Test: CREATE TABLE [dbo].[SpeedTest] ( ID int IDENTITY (1, 1) NOT NULL , Description varchar(50) NOT NULL , Account float NULL , IsTrue bit NOT NULL , Quantity int NULL, CreationDate datetime ) GO DECLARE @Counter INT SET @Counter = 1 WHILE @Counter < 1000000 BEGIN INSERT dbo.SpeedTest(Description, Account, IsTrue, Quantity, CreationDate) VALUES ('My really long description', 7654321, 1, @Counter, getdate()) SET @Counter = @Counter + 1 END It's good to be alive modified on Friday, December 07, 2007 9:15:58 AM

    M P D C M 5 Replies Last reply
    0
    • T Turtle Hand

      Recently I’ve upgraded a production DB Server from the 32 bit versions of Windows Server 2003 and SQL 2005 to the 64 bit versions. The primary reason for this upgrade was the ability to utilize the 8gb of RAM available. Before I did this upgrade I ran a benchmark test (see below) by inserting 1 million rows into a table. I ran this test 5 times to flatten out the true performance. The benchmark results: 32 BIT RESULTS 1.) 20:24 2.) 17:12 3.) 10:10 4.) 10:24 5.) 10:51 Average of top 3: 10:28 After the upgrade I ran the same test, here are the results: 64 BIT RESULTS 1.) 2:30 2.) 2:31 3.) 2:25 4.) 2:26 5.) 2:23 Average of top 3: 2:25 The 64 bit version SMOKED the 32 bit version; even I wasn’t prepared for this kind of improvement! All this for no increase in cost; both Windows Server and SQL Server 64 bit versions cost the same as the 32 bit versions. The Test: CREATE TABLE [dbo].[SpeedTest] ( ID int IDENTITY (1, 1) NOT NULL , Description varchar(50) NOT NULL , Account float NULL , IsTrue bit NOT NULL , Quantity int NULL, CreationDate datetime ) GO DECLARE @Counter INT SET @Counter = 1 WHILE @Counter < 1000000 BEGIN INSERT dbo.SpeedTest(Description, Account, IsTrue, Quantity, CreationDate) VALUES ('My really long description', 7654321, 1, @Counter, getdate()) SET @Counter = @Counter + 1 END It's good to be alive modified on Friday, December 07, 2007 9:15:58 AM

      M Offline
      M Offline
      Mike Dimmick
      wrote on last edited by
      #2

      I must confess that I'm slightly surprised by this result. I would have expected that query to be bounded by the I/O to the log file. Did you perhaps use tempdb for the second run, whose log is not flushed synchronously with committing a transaction? Also, your test data set doesn't come near to exercising the amount of memory fitted: it's only about 60 bytes per row, giving a total dataset of 60MB. The 32-bit versions will easily (obviously) fit it into the virtual address space available. It appears my laptop is better than your server: the 32-bit SQL Server 2005 Developer Edition, with SP2 installed, gave 7:48 against a fresh test database (initialized with 50MB data and log files, so a small amount of data space growth was required, as I guessed how much space was needed). For comparison, against tempdb it ran in 34 seconds. I also looked into setting NOCOUNT to ON to stop it having to return a million resultsets to the client (to give the '1 row(s) affected' message) but this didn't seem to make a lot of difference. It's possible that the SQL parser has been improved but to be honest, signs point to misconfiguration of the 32-bit server or the test. I would have expected a slight improvement on x64 but not an order of magnitude. Perhaps your disk was just very fragmented with little contiguous space available?


      DoEvents: Generating unexpected recursion since 1991

      1 Reply Last reply
      0
      • T Turtle Hand

        Recently I’ve upgraded a production DB Server from the 32 bit versions of Windows Server 2003 and SQL 2005 to the 64 bit versions. The primary reason for this upgrade was the ability to utilize the 8gb of RAM available. Before I did this upgrade I ran a benchmark test (see below) by inserting 1 million rows into a table. I ran this test 5 times to flatten out the true performance. The benchmark results: 32 BIT RESULTS 1.) 20:24 2.) 17:12 3.) 10:10 4.) 10:24 5.) 10:51 Average of top 3: 10:28 After the upgrade I ran the same test, here are the results: 64 BIT RESULTS 1.) 2:30 2.) 2:31 3.) 2:25 4.) 2:26 5.) 2:23 Average of top 3: 2:25 The 64 bit version SMOKED the 32 bit version; even I wasn’t prepared for this kind of improvement! All this for no increase in cost; both Windows Server and SQL Server 64 bit versions cost the same as the 32 bit versions. The Test: CREATE TABLE [dbo].[SpeedTest] ( ID int IDENTITY (1, 1) NOT NULL , Description varchar(50) NOT NULL , Account float NULL , IsTrue bit NOT NULL , Quantity int NULL, CreationDate datetime ) GO DECLARE @Counter INT SET @Counter = 1 WHILE @Counter < 1000000 BEGIN INSERT dbo.SpeedTest(Description, Account, IsTrue, Quantity, CreationDate) VALUES ('My really long description', 7654321, 1, @Counter, getdate()) SET @Counter = @Counter + 1 END It's good to be alive modified on Friday, December 07, 2007 9:15:58 AM

        P Offline
        P Offline
        Pete OHanlon
        wrote on last edited by
        #3

        It's funny - I was just talking about this. We have a client who run a BI system on 32 bit SQL Server, and queries that take a couple of hours on their system run in just a few minutes on our 64 bit server. SQL 64 bit definitely rocks. I should explain that the 64 bit hardware is better specced and performs better than the 32 bit hardware, so it helps to give that boost.

        Deja View - the feeling that you've seen this post before.

        My blog | My articles

        modified on Friday, December 07, 2007 10:32:20 AM

        T 1 Reply Last reply
        0
        • T Turtle Hand

          Recently I’ve upgraded a production DB Server from the 32 bit versions of Windows Server 2003 and SQL 2005 to the 64 bit versions. The primary reason for this upgrade was the ability to utilize the 8gb of RAM available. Before I did this upgrade I ran a benchmark test (see below) by inserting 1 million rows into a table. I ran this test 5 times to flatten out the true performance. The benchmark results: 32 BIT RESULTS 1.) 20:24 2.) 17:12 3.) 10:10 4.) 10:24 5.) 10:51 Average of top 3: 10:28 After the upgrade I ran the same test, here are the results: 64 BIT RESULTS 1.) 2:30 2.) 2:31 3.) 2:25 4.) 2:26 5.) 2:23 Average of top 3: 2:25 The 64 bit version SMOKED the 32 bit version; even I wasn’t prepared for this kind of improvement! All this for no increase in cost; both Windows Server and SQL Server 64 bit versions cost the same as the 32 bit versions. The Test: CREATE TABLE [dbo].[SpeedTest] ( ID int IDENTITY (1, 1) NOT NULL , Description varchar(50) NOT NULL , Account float NULL , IsTrue bit NOT NULL , Quantity int NULL, CreationDate datetime ) GO DECLARE @Counter INT SET @Counter = 1 WHILE @Counter < 1000000 BEGIN INSERT dbo.SpeedTest(Description, Account, IsTrue, Quantity, CreationDate) VALUES ('My really long description', 7654321, 1, @Counter, getdate()) SET @Counter = @Counter + 1 END It's good to be alive modified on Friday, December 07, 2007 9:15:58 AM

          D Offline
          D Offline
          Davide Zaccanti
          wrote on last edited by
          #4

          Witch version of SQL ? enterprise ? maybe 32bits uses 2Gb of RAM and 64Bit 6Gb, and cache can make the difference... Can yoy specify the environments ? It seems impossibile a 5 to 10 times difference Davide

          T 1 Reply Last reply
          0
          • D Davide Zaccanti

            Witch version of SQL ? enterprise ? maybe 32bits uses 2Gb of RAM and 64Bit 6Gb, and cache can make the difference... Can yoy specify the environments ? It seems impossibile a 5 to 10 times difference Davide

            T Offline
            T Offline
            Turtle Hand
            wrote on last edited by
            #5

            Server has 2 Quad Intel Xeons connected to a SAN. In fact 32 bits can only use 2gb out of the box, but can use 3gb when AWE is configured. I had not configured AWE for the 32 bit test. 64 bits can access all 8gb. The network manager commented there is a 70% improvement in I/O against the SAN when using 64 bits. Being that the test was 1 million inserts, I/O played a significant factor in the performance. In both cases the server didn't have anything loaded beyond SQL Server 2005 Enterprise. For the 32 bit test IIS was installed. In both cases the server was idle besides running these tests. Is their a compound affect of switching from 32 bit to 64 bit for both the OS and SQL?

            It's good to be alive

            1 Reply Last reply
            0
            • P Pete OHanlon

              It's funny - I was just talking about this. We have a client who run a BI system on 32 bit SQL Server, and queries that take a couple of hours on their system run in just a few minutes on our 64 bit server. SQL 64 bit definitely rocks. I should explain that the 64 bit hardware is better specced and performs better than the 32 bit hardware, so it helps to give that boost.

              Deja View - the feeling that you've seen this post before.

              My blog | My articles

              modified on Friday, December 07, 2007 10:32:20 AM

              T Offline
              T Offline
              Turtle Hand
              wrote on last edited by
              #6

              In this case it was the same box. I flattened it and installed 64 bit OS and SQL.

              It's good to be alive

              1 Reply Last reply
              0
              • T Turtle Hand

                Recently I’ve upgraded a production DB Server from the 32 bit versions of Windows Server 2003 and SQL 2005 to the 64 bit versions. The primary reason for this upgrade was the ability to utilize the 8gb of RAM available. Before I did this upgrade I ran a benchmark test (see below) by inserting 1 million rows into a table. I ran this test 5 times to flatten out the true performance. The benchmark results: 32 BIT RESULTS 1.) 20:24 2.) 17:12 3.) 10:10 4.) 10:24 5.) 10:51 Average of top 3: 10:28 After the upgrade I ran the same test, here are the results: 64 BIT RESULTS 1.) 2:30 2.) 2:31 3.) 2:25 4.) 2:26 5.) 2:23 Average of top 3: 2:25 The 64 bit version SMOKED the 32 bit version; even I wasn’t prepared for this kind of improvement! All this for no increase in cost; both Windows Server and SQL Server 64 bit versions cost the same as the 32 bit versions. The Test: CREATE TABLE [dbo].[SpeedTest] ( ID int IDENTITY (1, 1) NOT NULL , Description varchar(50) NOT NULL , Account float NULL , IsTrue bit NOT NULL , Quantity int NULL, CreationDate datetime ) GO DECLARE @Counter INT SET @Counter = 1 WHILE @Counter < 1000000 BEGIN INSERT dbo.SpeedTest(Description, Account, IsTrue, Quantity, CreationDate) VALUES ('My really long description', 7654321, 1, @Counter, getdate()) SET @Counter = @Counter + 1 END It's good to be alive modified on Friday, December 07, 2007 9:15:58 AM

                C Offline
                C Offline
                Chris Maunder
                wrote on last edited by
                #7

                We found exactly the same thing when we moved to 64bit. It's awesome

                cheers, Chris Maunder

                CodeProject.com : C++ MVP

                1 Reply Last reply
                0
                • T Turtle Hand

                  Recently I’ve upgraded a production DB Server from the 32 bit versions of Windows Server 2003 and SQL 2005 to the 64 bit versions. The primary reason for this upgrade was the ability to utilize the 8gb of RAM available. Before I did this upgrade I ran a benchmark test (see below) by inserting 1 million rows into a table. I ran this test 5 times to flatten out the true performance. The benchmark results: 32 BIT RESULTS 1.) 20:24 2.) 17:12 3.) 10:10 4.) 10:24 5.) 10:51 Average of top 3: 10:28 After the upgrade I ran the same test, here are the results: 64 BIT RESULTS 1.) 2:30 2.) 2:31 3.) 2:25 4.) 2:26 5.) 2:23 Average of top 3: 2:25 The 64 bit version SMOKED the 32 bit version; even I wasn’t prepared for this kind of improvement! All this for no increase in cost; both Windows Server and SQL Server 64 bit versions cost the same as the 32 bit versions. The Test: CREATE TABLE [dbo].[SpeedTest] ( ID int IDENTITY (1, 1) NOT NULL , Description varchar(50) NOT NULL , Account float NULL , IsTrue bit NOT NULL , Quantity int NULL, CreationDate datetime ) GO DECLARE @Counter INT SET @Counter = 1 WHILE @Counter < 1000000 BEGIN INSERT dbo.SpeedTest(Description, Account, IsTrue, Quantity, CreationDate) VALUES ('My really long description', 7654321, 1, @Counter, getdate()) SET @Counter = @Counter + 1 END It's good to be alive modified on Friday, December 07, 2007 9:15:58 AM

                  M Offline
                  M Offline
                  martin_hughes
                  wrote on last edited by
                  #8

                  Very cool. Any idea why the 32 bit version showed such a large variance between slowest and fastest results?

                  "On one of my cards it said I had to find temperatures lower than -8. The numbers I uncovered were -6 and -7 so I thought I had won, and so did the woman in the shop. But when she scanned the card the machine said I hadn't. "I phoned Camelot and they fobbed me off with some story that -6 is higher - not lower - than -8 but I'm not having it." -Tina Farrell, a 23 year old thicky from Levenshulme, Manchester.

                  1 Reply Last reply
                  0
                  Reply
                  • Reply as topic
                  Log in to reply
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes


                  • Login

                  • Don't have an account? Register

                  • Login or register to search.
                  • First post
                    Last post
                  0
                  • Categories
                  • Recent
                  • Tags
                  • Popular
                  • World
                  • Users
                  • Groups