Advertisement
Guest User

GUID vs INT clustered PK's (GUID wins)

a guest
May 21st, 2013
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 1.16 KB | None | 0 0
  1. /* Test 1 - clustered guid pk */
  2. BEGIN TRANSACTION;
  3. CREATE TABLE Table1(
  4.     [Guid] [uniqueidentifier] primary key,
  5. )
  6.  
  7. DECLARE @i INT
  8. SET @i = 1
  9. WHILE @i < 1000000
  10. BEGIN
  11.     INSERT INTO Table1 VALUES (newid())
  12.     SET @i = @i + 1
  13. END
  14.  
  15. ROLLBACK TRANSACTION;
  16.  
  17. -- Results
  18. -- 18 seconds
  19. -- 14 seconds
  20. -- 14 seconds
  21.  
  22.  
  23.  
  24.  
  25. /* Test 2 - clustered int identity pk, non-clustered index on guid */
  26. BEGIN TRANSACTION;
  27. CREATE TABLE Table1(
  28.     [ID] [INT] PRIMARY KEY IDENTITY,
  29.     [Guid] [uniqueidentifier],
  30.     UNIQUE NONCLUSTERED
  31.     (
  32.         [Guid] ASC
  33.     )  
  34. )
  35.  
  36.  
  37. DECLARE @i INT
  38. SET @i = 1
  39. WHILE @i < 1000000
  40. BEGIN
  41.     INSERT INTO Table1 VALUES (newid())
  42.     SET @i = @i + 1
  43. END
  44.  
  45. ROLLBACK TRANSACTION;
  46.  
  47. -- Results
  48. -- 24 seconds
  49. -- 24 seconds
  50. -- 24 seconds
  51.  
  52.  
  53.  
  54. /* Test 3 - clustered bigint identity pk, non-clustered index on guid */
  55.  
  56. BEGIN TRANSACTION;
  57. CREATE TABLE Table1(
  58.     [ID] [BIGINT] PRIMARY KEY IDENTITY,
  59.     [Guid] [uniqueidentifier],
  60.     UNIQUE NONCLUSTERED
  61.     (
  62.         [Guid] ASC
  63.     )  
  64. )
  65.  
  66.  
  67. DECLARE @i INT
  68. SET @i = 1
  69. WHILE @i < 1000000
  70. BEGIN
  71.     INSERT INTO Table1 VALUES (newid())
  72.     SET @i = @i + 1
  73. END
  74.  
  75. ROLLBACK TRANSACTION;
  76.  
  77. -- Results
  78. -- 29 seconds
  79. -- 24 seconds
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement