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

Các công việc bảo trì trong cơ sở dữ liệu nhỏ SQL

quá mơ hồ để trả lời chính xác, nó phụ thuộc rất nhiều vào loại hoạt động được thực hiện trên DB, mô hình khôi phục được sử dụng. Trong chế độ khôi phục đơn giản, chỉ sử dụng tệp db mà không có nhật ký giao dịch nếu thường xuyên có việc xóa và chèn trên bảng, bạn thường cần xây dựng lại chỉ mục trên các cơ sở thông thường.

Tôi sử dụng để đặt tác vụ hàng ngày (chạy ban đêm) gọi sqlcmd để thực thi SQL sau:

--*********************************
--*** REPLACE THIS WITH DBNAME  ***
USE db_mytestcopy_of_live_production
--*********************************

GO


DECLARE @Queryresult NVARCHAR(MAX)

SET @Queryresult=''

--*********************************
--DEFRAGGING THE MOST 6 FRAGMENTED INDEXES EXCLUDING ONES WITH A FRAG UP TO 35 %
--TO TAILOR IT TO YOUR NEEDS CHANGE THE NUMBERS AFTER "SELECT TOP" AND AFTER "ss.avg_fragmentation_in_percent >"

--WITHIN THE SQL HERE BELOW
--*********************************

SELECT TOP 6
  @[email protected] + 'ALTER INDEX ' + QUOTENAME(i.name) + ' ON '
  + QUOTENAME('dbo') + '.'
  + QUOTENAME(OBJECT_NAME(i.OBJECT_ID)) + ' REBUILD;'
 FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'SAMPLED') ss
  INNER JOIN sys.indexes i ON i.OBJECT_ID = ss.OBJECT_ID AND i.index_id = ss.index_id
  INNER JOIN sys.objects o ON ss.object_id = o.object_id
WHERE ss.avg_fragmentation_in_percent > 35
AND ss.record_count > 0 
AND o.is_ms_shipped = 0 --Excludes any objects created as a part of SQL Server installation
AND ss.index_id > 0     --Excludes heap indexes
ORDER BY ss.avg_fragmentation_in_percent DESC

--*********************************
--Uncomment to see the generated command

--*********************************
--PRINT @QueryResult

EXEC sp_executesql @QueryResult



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để Hiển thị Số Trang trong Nội dung Báo cáo của SSRS 2008 R2?

  2. Tách một chuỗi rất lớn bằng dấu phân cách tùy chỉnh?

  3. SQL Server:Làm cách nào để tôi có thể nhóm nhiều giá trị hàng thành các cột riêng biệt?

  4. TSQL-2008 SUM (X) HẾT (PHẦN ... ĐẶT HÀNG CỦA KHÁCH HÀNG)

  5. Hợp nhất các bản ghi thời gian trùng lặp trong cơ sở dữ liệu