少以SQL Server减少每月月份(sqlserver月份减)

随着世界经济的迅速发展,企业越来越聚焦于节省花费以获得更好的财务报表。特别是数据库部门,为了优化花费,其最大的精力都放在最少以SQL Server减少每个月的费用上。

要达到这个目标,首先,必须做一个认真的SQL Server清理,检查所有的不再使用的数据和日志文件,以及备份和日志文件夹内的冗余数据,并且删除掉它们。另外,通过运行sql脚本,可以检查SQL Server中使用的外部连接,比如数据库链接,并删除不再使用的链接:

DECLARE @SQL NVARCHAR (MAX)

SELECT @SQL = ‘ DECLARE temp_cursor CURSOR FOR

SELECT Distinct’

+ ‘ [name] FROM [master].[sys].[syslogins]’

+ ‘ WHERE [name] NOT IN ‘

+ ‘ (SELECT [name] FROM [master].[sys].[syslogins]

WHERE [name] LIKE ”system%”)

OPEN temp_cursor FETCH NEXT

FROM temp_cursor INTO @user_name

WHILE @@FETCH_STATUS = 0

BEGIN

EXEC sp_droplogin @user_name

FETCH NEXT

FROM temp_cursor INTO @user_name

END

CLOSE temp_cursor

DEALLOCATE temp_cursor

EXEC (@SQL)

此外,可以检查数据库中是否有多余无用的空表,并使用DROP TABLE语句删除掉它们:

–Find the odd tables in the databases

SELECT DISTINCT sch.name AS [schema_name],

tbl.name AS [table_name]

FROM sys.tables tbl

JOIN sys.schemas sch ON tbl.schema_id = sch.schema_id

WHERE tbl.object_id NOT IN

(

SELECT object_id

FROM sys.columns

)

— Drop the tables

DECLARE @TableName sysname

DECLARE @SchemaName sysname

DECLARE @SQL NVARCHAR(256)

DECLARE cTab_Odd_Tables CURSOR FOR

SELECT sch.name AS [schema_name],

tbl.name AS [table_name]

FROM sys.tables tbl

JOIN sys.schemas sch ON tbl.schema_id = sch.schema_id

WHERE tbl.object_id NOT IN

(

SELECT object_id

FROM sys.columns

)

OPEN cTab_Odd_Tables

FETCH NEXT FROM cTab_Odd_Tables

INTO @SchemaName,@TableName

WHILE @@FETCH_STATUS = 0

BEGIN

SET @SQL = N’DROP TABLE ‘ + @SchemaName + ‘.’ + @TableName

EXEC SP_EXECUTESQL @SQL

FETCH NEXT FROM cTab_Odd_Tables

INTO @SchemaName,@TableName

END

CLOSE cTab_Odd_Tables

DEALLOCATE cTab_Odd_Tables

最后,通过运行sp_spaceused存储过程,可以查看数据库中存储的空间大小,并更改数据库设置,例如减少文件空间释放空间和日志文件大小,以节省存储空间:

EXEC sys.sp_spaceused N’databasename’

以上就是在每个月优化SQL Server以最小化费用的一些常见技巧。通过认真检查所有不必要的文件和外部连接,删除多余的空表,以及更改数据库设置,都能让企业力求实现节省费用的目标。


数据运维技术 » 少以SQL Server减少每月月份(sqlserver月份减)