sys.views会给服务器增加巨大的维护成本吗?

时间:2014-11-03 01:08:37

标签: sql-server views sql-server-2014

我无法理解为什么我的游戏很慢。但幸运的是,我发现数据库总共有1451个视图。我不记得我创造了那些

首先做sql server 2014自动创建视图吗?

我每天都在使用hallengren MaintenanceSolution.sql计划。

如下所示执行自动创建视图?

EXECUTE master.dbo.IndexOptimize @Databases = 'Pokemon_Pets_DB',
@FragmentationLow = NULL,
@FragmentationMedium = 'INDEX_REORGANIZE,INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
@FragmentationHigh = 'INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
@FragmentationLevel1 = 5,
@FragmentationLevel2 = 30,
@UpdateStatistics = 'ALL',
@OnlyModifiedStatistics = 'Y'

在注意到所有这些观点之后,我删除了所有这些观点。现在我看到了显着的性能和速度提升。 SQL服务器cpu的总使用量也减少了。

观点真的有用吗?他们为什么给我的服务器造成负担?

我没有任何使用任何观点的查询

这是我删除所有

之前备份的截图

enter image description here

1 个答案:

答案 0 :(得分:1)

  

首先做sql server 2014自动创建视图吗?

不,它没有(除了每个数据库中的某些系统视图,并且无法更改)。

  

如下所示执行自动创建视图?

不,他的剧本没有。

  

观点真正做了什么?

视图是内联替换的定义,有助于促进代码重用和抽象(以及其他内容)。视图存储为定义,除定义之外不会保留任何内容,除非它是索引视图。

  

为什么它们会给我的服务器带来负担?

除非针对他们运行某些东西,否则他们有0开销。索引视图具有与视图中定义的基表的速率和变化量成比例的大量开销。

  

我没有任何使用任何观点的查询

然后我会设置跟踪或扩展事件会话,以查看创建它们的人员/内容。由于我们不知道它们是否是索引视图(因为您已经删除了它们),因此很难对它们进行一般性的说明。