Hiển thị các bài đăng có nhãn Admin > Objects. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Admin > Objects. Hiển thị tất cả bài đăng

Thứ Bảy, 6 tháng 9, 2025

Alter Big Table thế nào để không bị treo hệ thống Oracle database

Alter Big Table thế nào để không bị treo hệ thống Oracle database

Alter table bảng lớn mà không bị treo DB như thế nào?

Việc thay đổi cấu trúc bảng trong production là công việc thường xuyên, nhưng khi CSDL chúng ta lớn và rất lớn thì việc thay đổi nhỏ cũng có thể làm treo toàn bộ DB vì phải xử lý 1 lượng lớn dữ liệu.

Tăng tốc truy vấn với Materialized View trong PostgreSQL

Materialized view trong PostgreSQL là một loại view đặc biệt lưu trữ dữ liệu kết quả của truy vấn view tại thời điểm tạo hoặc làm mới (refresh) view. Điều này giúp tăng tốc độ truy vấn vì dữ liệu không cần phải tính toán lại mỗi khi view được truy vấn, thay vào đó, nó đọc từ dữ liệu đã lưu trữ sẵn.

Chủ Nhật, 20 tháng 11, 2022

Bảng DUAL trong Oracle Database

Trong Oracle, câu lệnh SELECT phải có mệnh đề FROM. Tuy nhiên, một số truy vấn (querry) không yêu cầu bất kỳ bảng (table) nào. Ví dụ như:

Thứ Ba, 26 tháng 4, 2022

Bí kíp xóa dữ liệu lớn hiệu quả từ bảng trong Oracle Database

Là một người dùng ứng dụng, bạn có thể được yêu cầu viết một tập lệnh dọn dẹp để xóa dữ liệu cũ khỏi một bảng lớn có hàng triệu dòng dựa trên ngày hoặc một số trường. Là một DBA, những người làm ứng dụng thường hỏi tôi bất kỳ cách nào tốt nhất để xóa một lượng lớn các hàng khỏi một bảng khổng lồ (partition/ non-partition) nhanh nhất có thể.

Thứ Bảy, 26 tháng 2, 2022

Đổi tên bảng core gặp lỗi " ORA-04020: deadlock detected while trying to lock object"

LỖI:

Thực hiện đổi tên bảng core (bảng gọi nhiều, cột Used By rất nhiều) thì gặp lỗi bên dưới:

alter table APP_OWNER.TAB1_NEW rename to TAB1; 

[1]: ORA-04020: deadlock detected while trying to lock object PUBLIC.TAB1

Chủ Nhật, 3 tháng 10, 2021

View và MView khác nhau chỗ nào? Khi nào thì sử dụng

1. View là gì ? Materialized View (MatView) là gì ?

--> View là 1 object của DB (mọi DB đều có) để hiển thị dữ liệu được tùy chỉnh với 1 bảng hoặc nhiều bảng, có thể masking che dấu dữ liệu nhạy cảm, có thể query, update, insert, delete dữ liệu từ view (DBA có 2 loại view rất quan trọng là Static Data Dictionary Views và Dynamic Performance Views)

--> Materialized View chỉ có ở Oracle DB là bản sao dữ liệu của 1 bảng từ DB từ xa (remote) mà được định kỳ cập nhật, có thể 5p, 10p, 1h, 12h, 24h,... cho phép truy cập dữ liệu nhanh như ở DB từ xa (nếu truy cập qua view dùng dblink thì sẽ chậm trong 1 số nghiệp vụ cần thời gian nhanh).

Thứ Năm, 30 tháng 9, 2021

[VIP5] Các giải pháp thu hồi dung lượng của bảng hay reset High Water Mark

Mục đích: thu hồi dung lượng của bảng hay reset High Water Mark (HWM)

Move dữ liệu của bảng Core theo phương pháp cuốn chiếu

Mình chia sẻ với anh/em 1 câu lệnh sinh ra script dùng để chuyển những những bảng lớn, core, hay bị lock cho bảng CÓ PARTITION là làm cuốn chiếu, xong partition nào thì rebuild index luôn partition đó tránh tình trạng move data partition xong làm index partition unusable cả đống, khi rebuild index thì chậm, nếu lock thời điểm nào đó ví dụ 22h thì cân nhắc có trường hợp phải làm 2,3h đêm:

Thứ Năm, 1 tháng 4, 2021

Quản trị MView, MView Log trong Oracle Database

Vấn đề: 

DB_Source(Core): binh_owner.tab1 là bảng core chứa dữ liệu khách hàng

DB_Dest: Là DB trung gian, giảm tải cho DB_Source(Core) những dữ liệu từ nhiều nguồn (gọi là DB Consolidate), có các giải pháp sau:

- Giải pháp 1: Muốn lấy dữ liệu từ DB_Source thì tạo v_tab1 qua dblink kết nối đến DB_Source --> Cách này chậm.

- Giải pháp 2: Dùng công nghệ Materialized view lấy y nguyên bảng binh_owner.tab1 từ db_source về và định kỳ 5 phút/lần sẽ đồng bộ cho DB_Dest.

- Giải pháp 3: Dùng GoldenGate --> Tham khảo mục GoldenGate

Mục đích bài viết: MView là giải pháp đồng bộ dữ liệu từ DB Source (bảng customer) về DB Dest  để khai thác bảng trên DB Dest giống như bảng ở DB Source tăng tốc độ truy cập dữ liệu so với giải pháp dùng view qua dblink trên DB Dest (có thể dùng GoldenGate)

Thứ Tư, 31 tháng 3, 2021

Global Temporary Tables trong Oracle Database

Các ứng dụng thường sử dụng một số dạng lưu trữ dữ liệu tạm thời cho các quy trình phức tạp để hoàn thành trong một lần xử lý. Từ Oracle Database 8i đã hỗ trợ Global Temporary Tables (GTT).

Thứ Sáu, 5 tháng 3, 2021

Thứ Năm, 4 tháng 3, 2021

Cách lấy lại toàn bộ không gian của bảng cơ sở dữ liệu oracle với câu lệnh "Truncate Table"

Sử dụng câu lệnh TRUNCATE cung cấp một phương pháp nhanh chóng, hiệu quả để xóa tất cả các row khỏi bảng hoặc cluster. Câu lệnh TRUNCATE không tạo ra bất kỳ thông tin redo entry hay undo nào và nó được thực hiện ngay lập tức. Đây là một câu lệnh DDL và không thể quay lại (không thể rollback). Câu lệnh TRUNCATE không ảnh hưởng đến bất kỳ cấu trúc nào liên quan đến bảng bị cắt bớt (ràng buộc và trình kích hoạt) hoặc ủy quyền. 

TRUNCATE TABLE không giải phóng không gian (space) khỏi tablespace

Khi chúng ta xóa các hàng khỏi bảng bằng lệnh DELETE, các extent được phân bổ cho bảng sẽ không được giải phóng và bảng vẫn giữ chúng, trong khi khi sử dụng TRUNCATE với mệnh đề DROP STORAGE (là mặc định), nó sẽ giải phóng không gian trở lại không gian bảng.

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master