Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Tác động của việc xác định cột VARCHAR2 có độ dài lớn hơn

Câu trả lời phụ thuộc vào việc bạn đang nói về một cột trong bảng cơ sở dữ liệu hay một biến trong chương trình PL / SQL.

Cột cơ sở dữ liệu

Dung lượng lưu trữ được sử dụng tương ứng với kích thước của dữ liệu được lưu trữ.

Biến PL / SQL

Nếu biến được khai báo với kích thước từ 1 đến 4000 (11g +) / 1999 (10g hoặc sớm hơn), bộ nhớ sẽ được cấp cho độ dài tối đa (tức là VARCHAR2 (100) sẽ yêu cầu ít nhất 100 byte bộ nhớ).

Nếu biến được khai báo với kích thước 4001 (11g +) / 2000 (10g trở lên) hoặc lớn hơn, bộ nhớ sẽ được cấp phát theo kích thước của dữ liệu được lưu trữ. (một câu hỏi phụ thú vị sẽ là, nếu giá trị của biến bị thay đổi, bộ nhớ được thay đổi kích thước như thế nào - nó có phân bổ lại bộ đệm khác với kích thước mới không?)

Tham chiếu cho 10g:PL / SQL Datatypes

Các biến VARCHAR2 nhỏ được tối ưu hóa cho hiệu suất và các biến lớn hơn được tối ưu hóa để sử dụng bộ nhớ hiệu quả. Điểm cắt là 2000 byte. Đối với VARCHAR2 có kích thước 2000 byte trở lên, PL / SQL chỉ cấp phát động đủ bộ nhớ để giữ giá trị thực. Đối với biến VARCHAR2 ngắn hơn 2000 byte, PL / SQL sẽ phân bổ trước độ dài được khai báo đầy đủ của biến. Ví dụ:nếu bạn gán cùng một giá trị 500 byte cho biến VARCHAR2 (2000 BYTE) và cho biến VARCHAR2 (1999 BYTE), thì biến trước chiếm 500 byte và biến sau chiếm 1999 byte.

Tham khảo cho 11g:Tránh phí bộ nhớ trong mã PL / SQL

Chỉ định kích thước hơn nữa hơn 4000 ký tự cho biến VARCHAR2; PL / SQL đợi cho đến khi bạn chỉ định biến, sau đó chỉ phân bổ dung lượng lưu trữ nếu cần



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tạo tệp cuộn chỉ lệnh sql oracle

  2. Tự động tạo tệp phản hồi

  3. Giữ một cơ sở dữ liệu ứng dụng là bất khả tri (ADO.NET so với đóng gói logic DB)

  4. Tìm số năm liên tiếp tối đa cho mỗi ID trong một bảng (Oracle SQL)

  5. Sự kiện chờ:thay đổi kích thước bộ mô tả asynch