Diễn đàn TVKT PYTHIS
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Sử dụng Temporary Table trong lập trình.

Go down

Sử dụng Temporary Table trong lập trình. Empty Sử dụng Temporary Table trong lập trình.

Bài gửi by tainv Mon Aug 16, 2010 2:48 pm

Thông thường khi viết ứng dụng, mỗi khi cần phải lưu tạm dữ liệu trung gian cho những tính toán sau đó chúng ta hay dùng cách tạo ra một table tạm để lưu trữ. Sau khi kết thúc phiên làm việc chúng ta là công việc “dọn rác” những dữ liệu này đi. Nếu vì lý do nào đó dữ liệu này không được dọn sạch, càng ngày chúng sẽ càng đầy lên.

Cũng với cách xử lý này, nếu như tại một thời điểm có hơn một người cùng kết nối với ứng dụng, gánh nặng xử lý để bảo đảm dữ liệu được bảo mật và tránh đụng độ sẽ càng trở nên nặng nề hơn.



Từ phiên bản 8i, Oracle giới thiệu một kiểu table mới là Temporary Table. Kiểu table mới này sẽ giúp ích rất nhiều cho các lập trình viên.

Một số đặc điểm của Temporary Table có thể liệt kê là:

- Thao tác: Có thể sử dụng các câu Query, DML để thao tác với Temporary Table giống như một table bình thường.
- Lưu trữ: Temporary table sử dụng Temporary tablespace để lưu dữ liệu.
- Tầm vực: Dữ liệu chỉ có hiệu lực trong phạm vi một Session hoặc một Transaction.
- Bảo mật: Cho dù dữ liệu đã commit, mỗi session cũng chỉ thấy được dữ liệu trong session của họ mà thôi.
- Xung đột: Do mỗi session có phần dữ liệu riêng nên tránh được việc xung đột dữ liệu, ví dụ như việc ghi đè dữ liệu của nhau là không xãy ra.
- Dọn rác: Temporary table tự động dọn sạch dữ liệu khi kết thúc Session hoặc Transaction.

Ngoài ra còn có một số đặc điểm khác như:

- Có thể tạo trigger, index trên temporary table.
- Khi dùng lệnh truncate (DDL), chỉ có dữ liệu trên session hiện tại bị mất.
- Khi export, phần cấu trúc của Temporary table cũng được export theo như table thường.


Có 2 kiểu Temporary table

1. Dữ liệu chỉ có giá trị trong một Transaction

- Với kiểu Table này, mỗi khi chúng ta kết thúc một transaction (commit, rollback) dữ liệu trong temporary table sẽ bị xóa.

Chúng ta có thể tạo table như sau:

EX:
CREATE GLOBAL TEMPORARY TABLE oravn_in_trans

(
column1 NUMBER,
column2 VARCHAR2(10)

) ON COMMIT DELETE ROWS;


2. Dữ liệu có giá trị trong một Session

- Dữ liệu chỉ mất đi khi chúng ta tự delete hoặc sau khi thoát khỏi session.

Chúng ta có thể tạo table như sau:

EX:
CREATE GLOBAL TEMPORARY TABLE oravn_in_session

(
column1 NUMBER,
column2 VARCHAR2(10)

) ON COMMIT PRESERVE ROWS;



Mong rằng Temporary table sẽ giúp cho việc lập trình của bạn được tốt hơn./.

--ST-- ORAVN: Hoàng Sang

tainv

Tổng số bài gửi : 75
Join date : 30/07/2010
Age : 40

Về Đầu Trang Go down

Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết