0

我们的应用程序在其SQL Server数据库中有数百个表。现在我们想让用户为某些区域编写查询并检索数据。由于当前的数据库体系结构太复杂,因此我打算创建一组简化的索引视图,并将这些视图公开给用户,以便针对它们编写查询。使用索引视图进行数据检索

表中的数据变化非常频繁。对这样的表使用索引视图可以吗?我不想让这个功能成为当前功能的开销。

你能预见这个程序的任何问题吗?

谢谢!

+0

没有什么是免费的 - 添加索引视图会增加一些开销 - 这是否太多会降低到测试。 – Andrew 2011-03-22 01:33:14

+0

其实听起来像数据仓库的开始... – jlnorsworthy 2011-03-22 01:45:08

回答

0

我测试了我的数据库与一些索引和非聚集索引视图。具有聚簇索引的视图使得下表中的更新/删除操作变得更慢。但是这在毫秒级范围内发生。我明白这取决于复杂性,但这是我观察到的情景。

我运行了一个更新查询,它更新了15000条记录。 带索引视图 - 550ms -650ms
没有聚簇索引 - 250ms - 280ms

我们的数据库没有每分钟100个节省。所以我认为索引视图适合我们的情况。

谢谢!

1

任何索引视图都会在插入/更新表时插入性能开销(插入/更新的数据也必须持久保存到索引视图中)。根据您对您的要求的描述,我将从一个常规视图开始,并且只考虑这些用户书面查询的性能是否保证视图的索引。

+0

http://technet.microsoft.com/en-us/library/cc917715.aspx#XSLTsection124121120120 – CharithJ 2011-03-23 05:21:05

+0

@CharithJ - 这是一个很好的阅读,但它确实没有'不会改变我所说的任何话。插入/更新仍然存在性能开销,这种情况经常发生;这会对当前的功能产生影响。在数据仓库中,您只需提取要报告的数据并将其加载到更适合报告的一组非规格化表中。 – jlnorsworthy 2011-03-23 05:29:51

+0

是的,的确如此。 – CharithJ 2011-03-24 07:29:20