Tôi đang làm việc với cơ sở dữ liệu Oracle và tôi cần có khả năng phân vùng dữ liệu trong bảng. Tôi hiểu rằng Rracle có một hàm ora_hash có thể phân vùng dữ liệu thành các thùng. Hàm ora_hash có xác định được không?Là ora_hash xác định?
Trong chương trình của mình, tôi sẽ thực hiện một số truy vấn cơ sở dữ liệu khác nhau với mỗi truy vấn yêu cầu một số nhóm khác nhau.
Ví dụ, trong một truy vấn tôi có thể yêu cầu hai xô đầu tiên:
SELECT * FROM sales WHERE ORA_HASH(cust_id, 9) in (0,1);
Trong một truy vấn tiếp theo tôi có thể yêu cầu 2 và xô 3rd:
SELECT * FROM sales WHERE ORA_HASH(cust_id, 9) in (1,2);
Ở phía trên Ví dụ, ora_hash sẽ luôn chia bảng thành 10 nhóm giống nhau không? Giả sử rằng dữ liệu trong các bảng đã không thay đổi. Nhóm thứ hai (nhóm 1) có giống nhau trong cả hai truy vấn không?
Có tài liệu gợi ý rằng giá trị hạt giống cho phép oracle trả lại các kết quả khác nhau cho cùng một tập dữ liệu. Vì vậy, tôi giả sử rằng nếu tôi không sử dụng giá trị hạt giống , thì ora_hash sẽ được xác định. Xem the documentation.
Tôi chỉ có thể tìm thấy một tham chiếu đến ["Nứt không xác định"] (http://thedailywtf.com/Articles/The-Nondeterministic-Hash.aspx) ... –