Đó là gợi ý trình tối ưu hóa SQL. Trong trường hợp của bạn rất có thể nó không có tác động. Có lẽ đó là một tối ưu hóa sớm.
Gợi ý này nên thực thi được gọi là chèn đường dẫn trực tiếp, bỏ qua bộ đệm đệm của Oracle và ghi dữ liệu trực tiếp vào tệp dữ liệu. Dữ liệu được nối thêm vượt quá vạch dấu nước cao (HWM) - bỏ qua bản đồ không gian trống của bảng, không có trình kích hoạt nào được kích hoạt và không có dấu kiểm nào được kiểm tra. Mặt khác, loại chèn này đang chặn. Chỉ một phiên có thể sử dụng nó trên một bảng cụ thể cùng một lúc.
Một đoạn trích từ tài liệu:
"Các gợi ý APPEND chỉ được hỗ trợ với cú pháp subquery của báo cáo kết quả INSERT, không phải là mệnh đề VALUES Nếu bạn chỉ định APPEND gợi ý với mệnh đề VALUES, nó. bị bỏ qua và chèn thông thường sẽ được sử dụng. để sử dụng trực tiếp con đường INSERT với mệnh đề VALUES, tham khảo để "APPEND_VALUES gợi ý" gợi ý này chỉ có tác dụng khi bạn sử dụng INSERT như SELECT tuyên bố
insert into <table> SELECT * FROM ....
Khi bạn chèn các giá trị, Oracle sẽ bỏ qua nó. Các phiên bản Oracle mới hơn cũng hỗ trợ gợi ý APPEND_VALUES.
Nếu bạn muốn xác thực gợi ý đang được sử dụng mở Toad hoặc SQL Developer, hãy chọn trình duyệt phiên, tìm phiên cụ thể đó và SQL hiện tại và kế hoạch thực hiện. Khi bạn nhìn thấy trong kế hoạch exec một cái gì đó như "INSERT into TABLE CONVENTIONAL"
sau đó gợi ý được bỏ qua. Nếu bạn thấy "INSERT as SELECT"
thì bạn đang sử dụng tải đường dẫn trực tiếp.
/* + APPEND */Tôi nghĩ đó chỉ là nhận xét. –
[Gợi ý này được giải thích trong tài liệu] (http://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements006.htm#sthref495). Bạn có nhiều quá trình chèn cùng một lúc hoặc dữ liệu không được cam kết trong bảng không? –
@AlexPoole Có, Nhiều chủ đề đang truy cập vào bảng cùng một lúc –