为更好地解决此问题,建意在SQL中新建一个数据库维护计划,选中“重新组织数据各索引页”选项,并设置每天运行一次。
/*
刷新数据库视图.sql
*/
ALTER PROC P_RefreshView
as
DECLARE @vName sysname
DECLARE refresh_cursor CURSOR FOR
SELECT Name from sysobjects WHERE xtype = 'V' order by crdate
FOR READ ONLY
OPEN refresh_cursor
FETCH NEXT FROM refresh_cursor
INTO @vName
WHILE @@FETCH_STATUS = 0
BEGIN
--刷新指定视图的元数据。由于视图所依赖的基础对象的更改,视图的持久元数据会过期。
exec sp_refreshview @vName
PRINT '视图' + @vName + '已更新'
FETCH NEXT FROM refresh_cursor
INTO @vName
END
CLOSE refresh_cursor
DEALLOCATE refresh_cursor
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
本文探讨了大型SQL数据库在使用一段时间后性能下降的原因,指出可能是由于索引问题导致。建议通过在SQL中建立数据库维护计划,定期执行重新组织数据各索引页的操作,并设置每天运行一次,来解决此问题。同时,介绍了刷新数据库视图的SQL脚本,以确保视图元数据与基础对象保持同步。
824

被折叠的 条评论
为什么被折叠?



