Nén PAGE trong SQL Server có hiệu lực khi chạy truy vấn


7

Tôi đang lên kế hoạch áp dụng nén PAGE cho một số bảng lớn trong cơ sở dữ liệu của mình (chính xác là DW). Các bảng này khá lớn với hơn 15 tỷ hàng. Khi tôi áp dụng nén trong môi trường thử nghiệm, toàn bộ quá trình mất khoảng 22 giờ. Các bảng này được truy cập hàng ngày với các truy vấn chạy khá dài. Câu hỏi của tôi là

  1. Trong khi nén đang được áp dụng, liệu có ảnh hưởng đến các truy vấn đang chạy không? Bất kỳ khóa vv Tôi nên nhận thức?
  2. Có một cách tiếp cận so le để áp dụng nén?

3.Bất kỳ đầu vào / phản hồi nào bạn có thể có?

cảm ơn nhiều

Sean


1
Đây là SQL Server, hay SSAS? Nếu trước đây, tại sao không SSAS?
podiluska

Có một lớp SSAS trên đầu trang. Tuy nhiên, điều này chủ yếu là để tiết kiệm dung lượng ổ đĩa và hy vọng tăng tốc quá trình xử lý SSAS. Cảm ơn vì đã gắn cờ với dba.se.

1
Bảng có được phân vùng không?
brian

Câu trả lời:


5

Ngoại tuyến KHÁC ... REBUILD có một khóa sửa đổi lược đồ lớn trên bàn với 0 đồng thời hoàn toàn (thậm chí không đọc bẩn có thể quét bảng). THAY ĐỔI trực tuyến ... REBUILD, như tên cho thấy, cho phép mọi truy vấn đồng thời hoặc hoạt động DML. Bài viết MSDN Cách thức hoạt động của chỉ mục trực tuyến mô tả ba giai đoạn (chuẩn bị, xây dựng và hoàn thiện) và các khóa đối tượng được yêu cầu trong mỗi giai đoạn (IS, IS, SCH-M). Trình xây dựng hoạt động theo từng đợt và thu được các khóa dữ liệu khi nó đạt được tiến bộ nhưng nó sẽ chống lại xung đột và có một số nước sốt đặc biệt để xử lý các bế tắc với trình xây dựng:

Bế tắc giữa giao dịch của trình tạo chỉ mục đang giữ các khóa giao dịch hàng loạt và các câu lệnh DML là có thể, nhưng được xử lý bên trong để cả hoạt động DML và giao dịch của trình tạo chỉ mục không bị chấm dứt trong giai đoạn xây dựng do bế tắc.

Thông tin chi tiết có trong Hoạt động lập chỉ mục trực tuyến trong whitepaper SQL Server 2005 , bao gồm cả cách thức phản vật chất hoạt động.

Bây giờ, như đã nói, đối với bảng DW 15 hàng, tùy chọn tốt nhất có thể là Chỉ mục của Cột .


4

Tôi đã thử kịch bản bằng cách chạy

ALTER TABLE test_tbl REBUILD WITH (DATA_COMPRESSION=PAGE,ONLINE=ON)

Trong Giao dịch, nó có các khóa độc quyền trên các trang, do đó, có khả năng chặn, tuy nhiên sẽ rất ít cho một bảng lớn vì nó nén từng trang, do đó chỉ có thể chọn quét toàn bộ bảng lớn bị chặn, không chèn hoặc cập nhật, vì vậy câu trả lời là:

  1. Có, nó có thể chặn các truy vấn lớn, quá trình sẽ có một khóa độc quyền trên trang đang được nén
  2. Có thể sử dụng cách tiếp cận so le nếu bạn sử dụng phân vùng, tuy nhiên điều đó sẽ không giúp ích cho bạn nhiều nếu bạn sử dụng truy vấn Tổng hợp mà không có bộ lọc trên cột được phân vùng, nếu bạn vẫn chọn toàn bộ bảng, thì vấn đề không phải là phân vùng nào bạn nén
  3. Ngoài dung lượng ổ đĩa, bạn cũng sẽ gặt hái các lợi ích hiệu suất vì bạn có thể chứa nhiều bảng hơn trong bộ nhớ, bạn có thể kiểm tra điều này bằng cách quan sát tuổi thọ của Trang trước và sau khi nén
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.