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

Microsoft SQL Server 2005/2008:Kiểu dữ liệu XML so với text / varchar

Nếu bạn lưu trữ xml trong cột được định kiểu xml, dữ liệu sẽ không được lưu trữ dưới dạng văn bản đơn giản, như trong trường hợp nvarchar, nó sẽ được lưu trữ trong một số loại cây dữ liệu được phân tích cú pháp, do đó sẽ nhỏ hơn phiên bản xml chưa được phân tích cú pháp. Điều này không chỉ làm giảm kích thước cơ sở dữ liệu mà còn mang lại cho bạn những lợi thế khác, như xác thực, thao tác dễ dàng, v.v. (ngay cả khi bạn không sử dụng bất kỳ cái nào trong số này, chúng vẫn ở đó để sử dụng trong tương lai).

Mặt khác, máy chủ sẽ phải phân tích cú pháp dữ liệu khi chèn, điều này có thể sẽ làm chậm cơ sở dữ liệu của bạn - bạn phải đưa ra quyết định về tốc độ so với kích thước.

Chỉnh sửa:

Cá nhân tôi nghĩ rằng dữ liệu trong cơ sở dữ liệu chỉ nên được lưu trữ dưới dạng xml khi nó có cấu trúc khó triển khai trong mô hình quan hệ, ví dụ:bố cục, mô tả kiểu, v.v. Thông thường, điều đó có nghĩa là sẽ không có nhiều dữ liệu và tốc độ không phải là vấn đề, do đó đã thêm các tính năng xml, như xác thực dữ liệu và khả năng thao tác (cũng có thể, cuối cùng nhưng không kém phần quan trọng là khả năng nhấp vào giá trị trong studio quản lý và xem xml được định dạng - Tôi thực sự thích tính năng đó!), vượt trội so với chi phí.

Tôi không có kinh nghiệm trực tiếp trong việc lưu trữ một lượng lớn xml trong cơ sở dữ liệu và tôi sẽ không làm điều đó nếu tôi có tùy chọn, vì mô hình quan hệ hầu như luôn chậm hơn, nhưng nếu đúng như vậy, tôi ' d đề xuất cấu hình cả hai tùy chọn và chọn giữa kích thước và tốc độ phù hợp nhất với nhu cầu của bạ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 thay đổi màu và phông chữ trong SQL Server Management Studio (SSMS) - Hướng dẫn SQL Server / TSQL Phần 12

  2. Sử dụng một biến trong truy vấn OPENROWSET

  3. cách hiệu quả để triển khai phân trang

  4. Nhóm theo cột và nhiều hàng thành một hàng nhiều cột

  5. Sử dụng FILE_NAME () để trả lại tên tệp logic cho một ID tệp đã cho trong SQL Server