我已在SQL Server 2005数据库上创建了视图,此视图基于第三方提供的视图。我通过JDBC连接在我们的应用程序中显示它们,它们似乎非常慢。我尝试了另一种方法,并使用SQL(select into)命令将它们创建为表,在这种情况下,查看应用程序中的数据很快。你能告诉我最好的方法。
如何改善应用程序性能?
答案 0 :(得分:2)
我必须找到提高查询性能(包括视图)的最佳方法是查看SSMS生成的查询计划。我寻找的第一件事是索引或表扫描。当你看到其中的任何一个时,很有可能需要一个索引,并且通常你需要在索引中包含INCLUDE列才能实际使用索引。
索引视图可以带来巨大的性能提升。但是,微软已经对它们施加了如此多的限制,实际上很难实际使用它们。它们还会影响基表的插入/更新/删除性能。所以需要权衡。
我怀疑创建一个单独的表是一种可行的长期和可扩展的方法,除非该计划要执行这些查询的次数很少。复制此数据的过程可能非常耗费资源。
答案 1 :(得分:1)
你应该先了解缓慢的地方。
将数据实现到表中显然意味着以后的选择可以更快,但复制可能很慢。如果数据正在缓慢变化,那肯定是一种可行的设计方法。
索引视图有限制,所有索引都会影响写入性能,因为它们需要在数据更改时更新。
听起来这里有两个服务器可以使用。目前尚不清楚您创建的视图是在服务器上还是在2005服务器上。如果在另一个链接服务器中的视图上在一个服务器上创建视图,则可能在服务器之间提取的数据超出了严格要求(与同一服务器上的所有视图相比并且能够一起优化)
答案 2 :(得分:-1)
如何改善应用程序性能?
- 索引视图。
- 使用SSIS将它们导入我们的数据库,这也是一个SQL Server 2008 R2。
- 还有什么?
醇>
未提及的另一个选项是
不要使用观看
我的经验是,非索引视图通常会使速度变慢,并且由于限制而难以创建索引视图。
如果您遇到某些问题,您认为需要使用View尝试使用CTE或内联视图。