Oracle 排序规则

前端之家收集整理的这篇文章主要介绍了Oracle 排序规则前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. <pre name="code" class="html">sql> select * from t1 where id>=1 and id<=20;
  2.  
  3. ID A1 A2 A3
  4. ---------- ---------- ---------- ----------
  5. 1 1 1 a1
  6. 2 2 2 a2
  7. 3 3 3 a3
  8. 4 4 4 a4
  9. 5 5 5 a5
  10. 6 6 6 a6
  11. 7 7 7 a7
  12. 8 8 8 a8
  13. 9 9 9 a9
  14. 10 10 10 a10
  15. 11 11 11 a11
  16. 12 12 12 a12
  17. 13 13 13 a13
  18. 14 14 14 a14
  19. 15 15 15 a15
  20. 16 16 16 a16
  21. 17 17 17 a17
  22. 18 18 18 a18
  23. 19 19 19 a19
  24. 20 20 20 a20
  25.  
  26. 已选择20行。
  27.  
  28.  
  29.  
  30.  
  31. sql> explain plan for select id from t1 where rownum<20;
  32.  
  33. 已解释。
  34.  
  35. sql> select * from table(dbms_xplan.display());
  36.  
  37. PLAN_TABLE_OUTPUT
  38. --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  39. Plan hash value: 3581814200
  40.  
  41. ---------------------------------------------------------------------------------
  42. | Id | Operation | Name | Rows | Bytes | Cost (%cpu)| Time |
  43. ---------------------------------------------------------------------------------
  44. | 0 | SELECT STATEMENT | | 19 | 209 | 1 (0)| 00:00:01 |
  45. |* 1 | COUNT STOPKEY | | | | | |
  46. | 2 | INDEX FULL SCAN| SYS_C0022200 | 19 | 209 | 1 (0)| 00:00:01 |
  47. ---------------------------------------------------------------------------------
  48.  
  49. Predicate Information (identified by operation id):
  50. ---------------------------------------------------
  51.  
  52. 1 - filter(ROWNUM<20)
  53.  
  54. 已选择14行。
  55.  
  56.  
  57.  
  58. INDEX FULL SCAN 返回数据有序:
  59.  
  60. sql> select id from t1 where rownum<20;
  61.  
  62. ID
  63. ----------
  64. 1
  65. 10
  66. 100
  67. 1000
  68. 10000
  69. 1001
  70. 1002
  71. 1003
  72. 1004
  73. 1005
  74. 1006
  75. 1007
  76. 1008
  77. 1009
  78. 101
  79. 1010
  80. 1011
  81. 1012
  82. 1013
  83.  
  84. 已选择19行。
  85.  
  86.  
  87. 不走索引,随机读:
  88. sql> select * from table(dbms_xplan.display());
  89.  
  90. PLAN_TABLE_OUTPUT
  91. --------------------------------------------------------------------------------
  92. Plan hash value: 3836375644
  93.  
  94. ---------------------------------------------------------------------------
  95. | Id | Operation | Name | Rows | Bytes | Cost (%cpu)| Time |
  96. ---------------------------------------------------------------------------
  97. | 0 | SELECT STATEMENT | | 19 | 836 | 2 (0)| 00:00:01 |
  98. |* 1 | COUNT STOPKEY | | | | | |
  99. | 2 | TABLE ACCESS FULL| T1 | 19 | 836 | 2 (0)| 00:00:01 |
  100. ---------------------------------------------------------------------------
  101.  
  102. Predicate Information (identified by operation id):
  103.  
  104. PLAN_TABLE_OUTPUT
  105. --------------------------------------------------------------------------------
  106. ---------------------------------------------------
  107.  
  108. 1 - filter(ROWNUM<20)
  109.  
  110. 已选择14行。
  111.  
  112.  
  113. sql> select * from t1 where rownum<20;
  114.  
  115. ID A1 A2 A3
  116. ---------- ---------- ---------- ----------
  117. 495 495 495 a495
  118. 496 496 496 a496
  119. 497 497 497 a497
  120. 498 498 498 a498
  121. 499 499 499 a499
  122. 500 500 500 a500
  123. 501 501 501 a501
  124. 502 502 502 a502
  125. 503 503 503 a503
  126. 504 504 504 a504
  127. 505 505 505 a505
  128.  
  129. ID A1 A2 A3
  130. ---------- ---------- ---------- ----------
  131. 506 506 506 a506
  132. 507 507 507 a507
  133. 508 508 508 a508
  134. 509 509 509 a509
  135. 510 510 510 a510
  136. 511 511 511 a511
  137. 512 512 512 a512
  138. 513 513 513 a513
  139.  
  140. 已选择19行
  141.  
  142.  
  143.  
  144.  
  145.  
  146. 排序规则:
  147.  
  148.  
  149.  
  150.  
  151. sql> select id from t1 where rownum<20;
  152.  
  153. ID
  154. ----------
  155. 1
  156. 10
  157. 100
  158. 1000
  159. 10000
  160. 1001
  161. 1002
  162. 1003
  163. 1004
  164. 1005
  165. 1006
  166. 1007
  167. 1008
  168. 1009
  169. 101
  170. 1010
  171. 1011
  172. 1012
  173. 1013
  174.  
  175. 已选择19行。
  176.  
  177.  
  178. sql> select * from ( select id from t1 where rownum<20) order by id;
  179.  
  180. ID
  181. ----------
  182. 1
  183. 10
  184. 100
  185. 1000
  186. 10000
  187. 1001
  188. 1002
  189. 1003
  190. 1004
  191. 1005
  192. 1006
  193. 1007
  194. 1008
  195. 1009
  196. 101
  197. 1010
  198. 1011
  199. 1012
  200. 1013
  201.  
  202. 已选择19行。
  203.  
  204.  
  205. sql> select * from (select * from t1 order by id ) where rownum<20;
  206.  
  207. ID A1 A2 A3
  208. ---------- ---------- ---------- ----------
  209. 1 1 1 a1
  210. 10 10 10 a10
  211. 100 100 100 a100
  212. 1000 1000 1000 a1000
  213. 10000 10000 10000 a10000
  214. 1001 1001 1001 a1001
  215. 1002 1002 1002 a1002
  216. 1003 1003 1003 a1003
  217. 1004 1004 1004 a1004
  218. 1005 1005 1005 a1005
  219. 1006 1006 1006 a1006
  220. 1007 1007 1007 a1007
  221. 1008 1008 1008 a1008
  222. 1009 1009 1009 a1009
  223. 101 101 101 a101
  224. 1010 1010 1010 a1010
  225. 1011 1011 1011 a1011
  226. 1012 1012 1012 a1012
  227. 1013 1013 1013 a1013
  228.  
  229. 已选择19行。
  230.  
  231. sql> select * from (select * from t1 where id<100 order by id) where rownum<20;
  232.  
  233. ID A1 A2 A3
  234. ---------- ---------- ---------- ----------
  235. 1 1 1 a1
  236. 10 10 10 a10
  237. 11 11 11 a11
  238. 12 12 12 a12
  239. 13 13 13 a13
  240. 14 14 14 a14
  241. 15 15 15 a15
  242. 16 16 16 a16
  243. 17 17 17 a17
  244. 18 18 18 a18
  245. 19 19 19 a19
  246. 2 2 2 a2
  247. 20 20 20 a20
  248. 21 21 21 a21
  249. 22 22 22 a22
  250. 23 23 23 a23
  251. 24 24 24 a24
  252. 25 25 25 a25
  253. 26 26 26 a26
  254.  
  255. 已选择19行。
  256.  

猜你在找的Oracle相关文章