Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Работи по поддръжката на SQL малки бази данни

твърде неясен, за да се отговори точно, зависи много от вида дейност, извършена върху DB, използвания модел за възстановяване. В простия режим на възстановяване, който използва само db файл без регистър на транзакциите, ако има чести изтривания и вмъквания в таблици, обикновено трябва да възстановявате индексите редовно.

Използвам, за да задам ежедневна (нощна) задача, която извиква sqlcmd за изпълнение на следния SQL:

--*********************************
--*** 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. Бърз начин за намиране на употреби на DB обекти в SQL Server 2008?

  2. Заобиколно решение за регулярен израз на SQL Server в T-SQL?

  3. T-SQL Използване на Cross-Apply с оператор Delete

  4. PHP грешка при свързване с MS SQL база данни чрез PDO_DBLIB

  5. Изображения в база данни срещу файлова система