减少SQL Server数据库上的负载

时间:2017-07-13 10:16:03

标签: sql sql-server sql-server-2008 tsql

我有一个第三方应用程序,查询将从中查找SQL Server 2008数据库以尽快获取数据(接近实时)。多个用户可以在不同时间调用相同的查询。

有没有办法存储最新结果并为后续查询提供结果,而不会一次又一次地为同一条数据点击数据库?

3 个答案:

答案 0 :(得分:1)

从将数据存储在全局临时表中的过程获取结果,或者如果定期删除连接,则更改为永久表:将 tempdb .. ## Results 更改为结果< / strong>即可。 param = 1刷新数据:

Create procedure [getresults] (@refresh int = 0)
as
begin
IF @refresh = 1 and OBJECT_ID('tempdb..##Results') IS NOT NULL
    drop table ##Results
IF OBJECT_ID('tempdb..##Results') IS NULL
    select * into ##Results from [INSERT SQL HERE]

SELECT * FROM ##RESULTS
END

答案 1 :(得分:0)

您可以为数据创建索引视图吗?

当数据更新时,视图将在第三方进行调用时更新视图内容将被返回而无需点击基表

答案 2 :(得分:0)

不幸的是,您使用的SQL服务器没有缓存系统,例如MySQL查询缓存。但根据我刚才看到的文档:Buffer Management 在SELECT期间读取的数据页首先被带入缓冲区高速缓存。因此,可以比初始请求更快地提供读取相同数据的后续请求,而无需访问光盘。