Advertisement
Guest User

Untitled

a guest
Apr 24th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.34 KB | None | 0 0
  1. CREATE TABLE Table1 (
  2. Key INTEGER NOT NULL,
  3. ... several other fields ...,
  4. Status CHAR(1) NOT NULL,
  5. Selection VARCHAR NULL,
  6. CONSTRAINT PK_Table1 PRIMARY KEY (Key ASC))
  7.  
  8. CREATE Table2 (
  9. Key INTEGER NOT NULL,
  10. Key2 INTEGER NOT NULL,
  11. ... a few other fields ...,
  12. CONSTRAINT PK_Table2 PRIMARY KEY (Key ASC, Key2 ASC))
  13.  
  14. CREATE INDEX IDX_Table1_Status ON Table1 (Status ASC, Key ASC)
  15. CREATE INDEX IDX_Table1_Selection ON Table1 (Selection ASC, Key ASC)
  16.  
  17. SELECT COUNT(*) FROM Table1
  18. Time: 105 sec
  19. QP: SCAN TABLE Table1 USING COVERING INDEX IDX_Table1_Selection(~1000000 rows)
  20. SELECT COUNT(Key) FROM Table1
  21. Time: 153 sec
  22. QP: SCAN TABLE Table1 (~1000000 rows)
  23. SELECT * FROM Table1 WHERE Key = 5123456
  24. Time: 5 ms
  25. QP: SEARCH TABLE Table1 USING INTEGER PRIMARY KEY (rowid=?) (~1 rows)
  26. SELECT * FROM Table1 WHERE Status = 73 AND Key > 5123456 LIMIT 1
  27. Time: 16 sec
  28. QP: SEARCH TABLE Table1 USING INDEX IDX_Table1_Status (Status=?) (~3 rows)
  29. SELECT * FROM Table1 WHERE Selection = 'SomeValue' AND Key > 5123456 LIMIT 1
  30. Time: 9 ms
  31. QP: SEARCH TABLE Table1 USING INDEX IDX_Table1_Selection (Selection=?) (~3 rows)
  32.  
  33. SELECT COUNT(*) FROM Table2
  34. Time: 528 sec
  35. QP: SCAN TABLE Table2 USING COVERING INDEX sqlite_autoindex_Table2_1(~1000000 rows)
  36. SELECT COUNT(Key) FROM Table2
  37. Time: 249 sec
  38. QP: SCAN TABLE Table2 (~1000000 rows)
  39. SELECT * FROM Table2 WHERE Key = 5123456 AND Key2 = 0
  40. Time: 7 ms
  41. QP: SEARCH TABLE Table2 USING INDEX sqlite_autoindex_Table2_1 (Key=? AND Key2=?) (~1 rows)
  42.  
  43. SELECT COUNT(*) FROM Table1
  44. Time: 104 sec
  45. QP: SCAN TABLE Table1 USING COVERING INDEX IDX_Table1_Selection(~7848023 rows)
  46. SELECT COUNT(Key) FROM Table1
  47. Time: 151 sec
  48. QP: SCAN TABLE Table1 (~7848023 rows)
  49. SELECT * FROM Table1 WHERE Status = 73 AND Key > 5123456 LIMIT 1
  50. Time: 5 ms
  51. QP: SEARCH TABLE Table1 USING INTEGER PRIMARY KEY (rowid>?) (~196200 rows)
  52. SELECT COUNT(*) FROM Table2
  53. Time: 529 sec
  54. QP: SCAN TABLE Table2 USING COVERING INDEX sqlite_autoindex_Table2_1(~51152542 rows)
  55. SELECT COUNT(Key) FROM Table2
  56. Time: 249 sec
  57. QP: SCAN TABLE Table2 (~51152542 rows)
  58.  
  59. CREATE INDEX IDX_Table1_Key ON Table1 (Key ASC)
  60.  
  61. SELECT COUNT(*) FROM Table1
  62. Time: 4 sec
  63. QP: SCAN TABLE Table1 USING COVERING INDEX IDX_Table1_Key(~1000000 rows)
  64. SELECT COUNT(Key) FROM Table1
  65. Time: 167 sec
  66. QP: SCAN TABLE Table2 (~1000000 rows)
  67. SELECT * FROM Table1 WHERE Status = 73 AND Key > 5123456 LIMIT 1
  68. Time: 17 sec
  69. QP: SEARCH TABLE Table1 USING INDEX IDX_Table1_Status (Status=?) (~3 rows)
  70.  
  71. CREATE TABLE Table1 (
  72. Key INTEGER PRIMARY KEY ASC NOT NULL,
  73. ... several other fields ...,
  74. Status CHAR(1) NOT NULL,
  75. Selection VARCHAR NULL)
  76.  
  77. SELECT COUNT(*) FROM Table1
  78. Time: 6 sec
  79. QP: SCAN TABLE Table1 USING COVERING INDEX IDX_Table1_Selection(~1000000 rows)
  80. SELECT COUNT(Key) FROM Table1
  81. Time: 28 sec
  82. QP: SCAN TABLE Table1 (~1000000 rows)
  83. SELECT * FROM Table1 WHERE Status = 73 AND Key > 5123456 LIMIT 1
  84. Time: 10 sec
  85. QP: SEARCH TABLE Table1 USING INDEX IDX_Table1_Status (Status=?) (~3 rows)
  86.  
  87. SELECT MAX(_ROWID_) FROM "table" LIMIT 1;
  88.  
  89. select count(my_column) from (select * from my_table) group by my_column having count(my_column) > 1; -- < 1 second
  90. -- For reference, the following query took > 10 seconds
  91. select count(my_column) from my_table group by my_column having count(my_column) > 1; -- > 10 seconds
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement