Advertisement
Guest User

Untitled

a guest
Jan 24th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. -- create three tables with different column sizes
  2. CREATE TABLE dbo.t1(a nvarchar(32), b nvarchar(32), c nvarchar(32), d nvarchar(32));
  3. CREATE TABLE dbo.t2(a nvarchar(4000), b nvarchar(4000), c nvarchar(4000), d nvarchar(4000));
  4. CREATE TABLE dbo.t3(a nvarchar(max), b nvarchar(max), c nvarchar(max), d nvarchar(max));
  5.  
  6. -- populate them with a bunch of rows, 100 times
  7. INSERT dbo.t1(a,b,c,d) SELECT LEFT(name,1), RIGHT(name,1),
  8. ABS(column_id/10), ABS(column_id%10)
  9. FROM sys.all_columns ORDER BY object_id;
  10. GO 100
  11. INSERT dbo.t2(a,b,c,d) SELECT a,b,c,d FROM dbo.t1;
  12. INSERT dbo.t3(a,b,c,d) SELECT a,b,c,d FROM dbo.t1;
  13. GO
  14.  
  15. -- no "primed the cache in advance" tricks
  16. DBCC FREEPROCCACHE WITH NO_INFOMSGS;
  17. DBCC DROPCLEANBUFFERS WITH NO_INFOMSGS;
  18. GO
  19.  
  20. -- run the same query against all three tables
  21. GO
  22. SELECT DISTINCT a,b,c,d, DENSE_RANK() OVER (PARTITION BY b,c ORDER BY d DESC)
  23. FROM dbo.t1 GROUP BY a,b,c,d ORDER BY c,a DESC;
  24. GO
  25. SELECT DISTINCT a,b,c,d, DENSE_RANK() OVER (PARTITION BY b,c ORDER BY d DESC)
  26. FROM dbo.t2 GROUP BY a,b,c,d ORDER BY c,a DESC;
  27. GO
  28. SELECT DISTINCT a,b,c,d, DENSE_RANK() OVER (PARTITION BY b,c ORDER BY d DESC)
  29. FROM dbo.t3 GROUP BY a,b,c,d ORDER BY c,a DESC;
  30. GO
  31.  
  32. SELECT [table] = N'...' + SUBSTRING(t.[text], CHARINDEX(N'FROM ', t.[text]), 12) + N'...',
  33. s.last_dop, s.last_elapsed_time, s.last_grant_kb, s.max_ideal_grant_kb
  34. FROM sys.dm_exec_query_stats AS s CROSS APPLY sys.dm_exec_sql_text(s.sql_handle) AS t
  35. WHERE t.[text] LIKE N'%dbo.'+N't[1-3]%'
  36. ORDER BY t.[text];
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement