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.
Giả sử chúng ta đang có bảng với 500tr records
alter table duong.table11 add salary number default 1000;
— để thực hiện lệnh này thì DB sẽ tiến hành lock bảng lại và sau đó thực hiện lệnh cho đến hết => sẽ rất lâu vì lượng dữ liệu lớn và phải set toàn bộ default cho col mới.
Giải pháp: Chia ra từng step để thực hiện riêng biệt
Step 1: add col thôi:
alter table duong.table11 add salary number;
Step 2: modify col đó cho giá trị default vào
alter table hr.employees modify salary default 1000;
Oracle sẽ tiến hành làm dần dần và đảm bảo không lock.
- Q22 Which two statements are true about the job?
- Tại sao AI không thể dự đoán giá Bitcoin
- Q139. While backing up to the Oracle Fast Recovery Area (FRA), you determined the backup is taking too long and suspect a performance bottleneck
- Data Enrichment là gì?
- Q133 Which two statements are true about undo segments and the use of undo by transactions in an Oracle database instance?