Advertisement
Guest User

variations

a guest
Jul 31st, 2013
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 1.27 KB | None | 0 0
  1. --initially Users contains 300k rows
  2. --deleting 100k from Users still repros, deleting 150k no longer repros
  3. --adding 500k random rows to Users no longer repros
  4. --adding 2k rows to Universities still repros (now a merge join), also with 10k (now a hash join)
  5.  
  6. --first execute a DML statement, then execute the "reset"
  7.  
  8.  
  9. --reset
  10. ALTER INDEX [PK_Universities] ON Universities REBUILD
  11. ALTER INDEX [PK_Users] ON Users REBUILD
  12. ALTER INDEX IX_Users_ImageObjectID ON Users REBUILD
  13. CHECKPOINT
  14. DBCC freeproccache
  15. DBCC DROPCLEANBUFFERS
  16. GO
  17. DBCC checkdb(CheckdbRepro3) WITH no_infomsgs, ALL_ERRORMSGS, TABLERESULTS, extended_logical_checks, data_purity
  18.  
  19.  
  20. --create rows in Users
  21. INSERT INTO Users (ID, ImageObjectID)
  22. SELECT TOP 500000 NEWID(), NULL
  23. FROM master.dbo.spt_values sv1
  24. CROSS JOIN master.dbo.spt_values sv2
  25.  
  26.  
  27. --delete rows from Users that would not pass the join
  28. DELETE TOP (50000)
  29. FROM Users
  30. WHERE NOT EXISTS (SELECT * FROM Universities WHERE AdminUserID = Users.ID)
  31.  
  32.  
  33. --create rows in Universities
  34. INSERT INTO Universities (ID, AdminUserID)
  35. SELECT TOP 1000 ABS(BINARY_CHECKSUM(NEWID())) AS ID, ID AS AdminUserID
  36. FROM Users
  37. ORDER BY NEWID()
  38.  
  39.  
  40. --delete rows from Universities to make a NLJ more attractive - now it doesn't repro
  41. DELETE TOP (600)
  42. FROM Universities
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement