Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Oracle 10g:Ước tính giá trị cột MIN / MAX

Có, LOW_VALUE và HIGH_VALUE sẽ cho bạn biết giá trị tối thiểu và tối đa trong cột nhưng :

  • chúng được lưu trữ dưới dạng cột RAW (32), vì vậy ý ​​nghĩa sẽ không rõ ràng ngay lập tức
  • chúng sẽ giống như lần cuối cùng số liệu thống kê được thu thập cho bảng, vì vậy có thể không chính xác (trừ khi bạn thu thập số liệu thống kê một cách rõ ràng trước khi sử dụng chúng)

Nếu bạn lập chỉ mục cột thì MIN (a) và MAX (a) sẽ rất nhanh vì trong ví dụ này, T1 có 50000 hàng và được lập chỉ mục trên OBJECT_ID:

SQL> select min(object_id) from t1;

MIN(OBJECT_ID)
--------------
           100

------------------------------------------------------------------------------------
| Id  | Operation                  | Name  | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT           |       |     1 |     5 |     2   (0)| 00:00:01 |
|   1 |  SORT AGGREGATE            |       |     1 |     5 |            |          |
|   2 |   INDEX FULL SCAN (MIN/MAX)| T1_ID | 53191 |   259K|     2   (0)| 00:00:01 |
------------------------------------------------------------------------------------

Statistics
----------------------------------------------------------
          1  recursive calls
          0  db block gets
          2  consistent gets
          0  physical reads
          0  redo size
        419  bytes sent via SQL*Net to client
        380  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed

Kết quả tương tự nếu bạn chọn MAX thay vì MIN. Tuy nhiên, nếu bạn chọn MIN và MAX trong một câu lệnh chọn duy nhất, kết quả sẽ khác:

SQL> select min(object_id), max(object_id) from t1;

MIN(OBJECT_ID) MAX(OBJECT_ID)
-------------- --------------
           100          72809


-------------------------------------------------------------------------------
| Id  | Operation             | Name  | Rows  | Bytes | Cost (%CPU)| Time     |
-------------------------------------------------------------------------------
|   0 | SELECT STATEMENT      |       |     1 |     5 |    34   (0)| 00:00:01 |
|   1 |  SORT AGGREGATE       |       |     1 |     5 |            |          |
|   2 |   INDEX FAST FULL SCAN| T1_ID | 53191 |   259K|    34   (0)| 00:00:01 |
-------------------------------------------------------------------------------


Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
        125  consistent gets
          0  physical reads
          0  redo size
        486  bytes sent via SQL*Net to client
        380  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed

Điều này cho thấy rằng có thể tốt hơn nếu mua chúng một cách riêng biệt, mặc dù tôi chưa chứng minh được điều đó một cách thuyết phục.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mối quan hệ lồng nhau của Oracle SQL thành một cấp

  2. ORA-00900:lỗi câu lệnh SQL không hợp lệ? Có vấn đề gì với sql của tôi?

  3. Kiểm soát nguồn cơ sở dữ liệu với Oracle

  4. Oracle SQL:Sử dụng trình tự trong chèn với Câu lệnh Chọn

  5. ORA-01403 không tìm thấy dữ liệu lỗi