Mọi người cảnh báo chống lại việc thu hẹp cơ sở dữ liệu, nhưng liệu nó có hoạt động trong trường hợp của tôi không? 1 GB db với các bảng đã bị xóa 100 MB


7

Mọi người đều cảnh báo về việc thu hẹp cơ sở dữ liệu, ví dụ SQLAuthority

Nhưng nó sẽ là một lựa chọn hợp lệ trong trường hợp của tôi? Cơ sở dữ liệu ban đầu chỉ có hơn 1 GB, nhưng với một bảng đã bị xóa khỏi nó (được chuyển sang cơ sở dữ liệu khác), cơ sở dữ liệu hiện là 100 MB khi tôi thực hiện sao lưu dữ liệu, trái ngược với MDF vẫn còn hơn 1 GB.

Điều gì sẽ xảy ra nếu tôi thu nhỏ DB, sau đó xây dựng lại tất cả các chỉ mục? Có phải tất cả những điều này vẫn là điều cấm kỵ?

Câu trả lời:


7

Cơ sở dữ liệu 1 GB không có gì liên quan đến việc lưu trữ. Nếu bạn thực sự muốn tiết kiệm không gian ở mức đó, tôi có thể đặt câu hỏi về các đặc điểm môi trường. Ngay cả trên một hộp nhỏ, 1 GB là không đáng kể.

Tôi khuyên bạn nên đọc về sự sụp đổ của việc thu hẹp các tệp cơ sở dữ liệu của bạn (cụ thể hơn là tệp dữ liệu của bạn [s]). Paul Randal đã viết một bài viết tuyệt vời về chính chủ đề này. Đạo đức ở đây là để biết những gì đang xảy ra và những gì bạn đang làm với dữ liệu của bạn . Nếu điều đó được chấp nhận và doanh nghiệp yêu cầu cơ sở dữ liệu nhỏ hơn thì hãy tiến hành thận trọng. Tôi sẽ trích dẫn Paul Randal với thực tiễn được đề nghị trong một tình huống như thế này:

Vì vậy, những gì nếu bạn làm cần phải chạy một co? Chẳng hạn, nếu bạn đã xóa một tỷ lệ lớn của một cơ sở dữ liệu rất lớn và cơ sở dữ liệu không có khả năng phát triển hoặc bạn cần làm trống một tệp trước khi xóa nó?

Phương pháp tôi muốn giới thiệu như sau:
- Tạo nhóm mới
- Di chuyển tất cả các bảng và chỉ mục bị ảnh hưởng vào nhóm mới bằng cách sử dụng cú pháp CREATE INDEX, VỚI (DROP_EXISTING = ON) ON, để di chuyển các bảng và loại bỏ phân mảnh khỏi chúng tại đồng thời
- Bỏ tập tin cũ mà bạn sẽ thu nhỏ lại (hoặc thu nhỏ nó xuống nếu tập đoàn chính của nó)

Về cơ bản, bạn cần cung cấp thêm một số dung lượng trước khi bạn có thể thu nhỏ các tệp cũ, nhưng đó là một cơ chế sạch hơn nhiều .

Cơ sở dữ liệu của bạn sẽ không bao giờ cần phải tăng lên kích thước này nữa? Đây là câu hỏi chính nên được đặt lên hàng đầu trong tâm trí của bạn khi bạn xem xét thu hẹp cơ sở dữ liệu. Đó là tất cả về kích thước phù hợp, không chỉ cho hôm nay, mà còn cho tương lai lâu dài .

Và, quan trọng nhất, không thực hiện phần này của bảo trì thường xuyên . Để biết lý do tại sao, xem bài viết trên blog của Paul.


3

Có, thu hẹp cơ sở dữ liệu sẽ làm giảm kích thước cơ sở dữ liệu. Và Có, xây dựng lại các chỉ mục sẽ tăng kích thước cơ sở dữ liệu một lần nữa, vì vậy bạn sẽ quay lại hình vuông

Tôi đã tìm thấy bộ sưu tập tốt nhất các bài viết "tại sao không thu nhỏ" ở đây: Dừng thu nhỏ tệp cơ sở dữ liệu của bạn. Nghiêm túc. Hiện nay.

Dù bạn làm gì - đừng thu nhỏ cơ sở dữ liệu của bạn. Thay vào đó, để đĩa của bạn được dọn sạch, để có đủ không gian cho cơ sở dữ liệu của bạn, hãy xem các đề xuất của Paul Randal:

  • đảm bảo rằng bạn kích thước tệp dữ liệu với một số không gian trống
  • có chế độ tăng trưởng tự động phù hợp
  • kích hoạt khởi tạo tập tin ngay lập tức nếu bạn có thể
  • giám sát kích thước tập tin và cách sử dụng
  • cảnh báo về tự động phát triển

Tầm quan trọng của quản lý kích thước tệp dữ liệu


0

Tôi đã thấy những trường hợp như thế này và cả những trường hợp thu nhỏ không làm gì cả (mặc dù cơ sở dữ liệu hoàn toàn trống rỗng). Tuy nhiên, từ kinh nghiệm cá nhân họ ít so với số lần nó đã làm việc như mong đợi. Nếu bạn lo lắng về việc lấy một bản sao của cơ sở dữ liệu, hãy đặt nó vào môi trường thử nghiệm và thử nó trước. Đó là cách duy nhất để thực sự biết chắc chắ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.