SQL Server有很多单用对象

时间:2014-10-17 12:43:57

标签: sql-server sql-server-2014 database-tuning

我们有一个大约50-60%重新编译的数据库。该值来自[SQL Compilations / sec]和[Batch Requests / sec]。

我们认为这个值有点高

如果我们查看此查询:

 SELECT TOP 150
    qs.plan_generation_num,
    qs.execution_count,
    qs.statement_start_offset,
    qs.statement_end_offset,
    st.text
    FROM sys.dm_exec_query_stats qs
    CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
    WHERE qs.plan_generation_num > 1
    ORDER BY plan_generation_num DESC

如果将它与执行计数进行比较,我们就没有很多plan_generation_num。 Wat我们有很多单一用途的物品,我想弄清楚为什么?

我们的应用程序是在ASP.NET中构建的,我们总是使用参数化查询。我们在应用程序中使用SP&SQL和SQL语句,但始终参数化。

这个数据库再次运行的网页是一个非常大的网站,每天有大约500 000次综合浏览量,如果这些信息有帮助,每分钟大约有10 000个请求。

我们没有长时间运行的查询,索引和统计数据是有序的。这是最后要优化的事情之一。

CPU平均为15% ram大约100 GB,并且SQL服务器用完了。 我们使用SQL Server 2014 Enterprise。

我开始怀疑的一件事。如果我有像这样的SQL语句

SELECT doors, windows, seats from cars where Wheels = @Wheels AND Active = 1

此计划不会被重复使用,因为我们没有在此部分设置参数:** AND Active = 1 **

有关如何了解我们为何如此多次使用的想法? 缓存计划的数量约为20 000.在比较中,我们有大约700 sp'在应用程序中有更多的查询。

0 个答案:

没有答案