问题标签 [sqlperformance]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - 来自 MS Access 的内部查询对 SQL Server 的性能问题
我们有一个在 MSAccess 中运行但使用 SQL Server 作为后端数据库的应用程序。这会生成一个查询来检查它可以访问哪些视图,对于普通用户来说,这最多需要 18 秒。对于属于 db_owner 角色的所有用户,需要 0.2 秒。有什么办法可以为普通用户调整这个吗?也许我可以在 Access 中做些什么?我不想给他们 db_owner,重写应用程序以不使用 Access 是不可能的。
这是查询:
使用 MS Access 2003、SQL Server 2008 R2
sql-server - 如何根据db中表的设置知道SQL查询是否有效?
有什么方法可以检查我的 sql 查询是否处于最佳状态?我正在使用 sql server 2008。例如,我想知道我的查询是否达到了预期的索引。
tsql - 在 SQL Management Studio 中,显示 SELECT 语句的结果的开销是多少?
默认情况下,在 SQL Management Studio 中对大型表执行 SELECT 时,结果将显示在 Grid 表中。正如我们可以想象的那样,当结果集长达数百万行时,数据将被馈送到 SQL Management Studio 中显示的那个表小部件。
- 这会对查询的执行持续时间产生影响吗?
- 如果是这样,是否可以禁用查询结果的显示,以获得更实际的查询执行时间?
更新 :
当我说显示时,我的意思不是“显示……执行计划”,而是屏幕上数据的显示
sql - 如何在不显示结果的情况下执行查询?
我想通过在 SQL Server Management Studio 中多次执行并比较统计信息来测试某些查询的性能。我的问题是这种方法不准确,因为在显示每个查询结果并且 Management Studio 的内存使用量增加之后。对我来说重要的是不要增加内存消耗,因为返回集很大(所以我不能把它放到临时表中)
我发现了这个问题: How to Execute SQL Query without Displaying results ,但它不符合我的需要。
那么,有没有什么方法可以在 SQL Manageement Studio 中执行查询而不显示返回数据呢?
sql - SQL Server 2008 上大量重读负载数据的性能
我有一个性能问题。
我们有一个包含几百万条记录的表,我们正在提供一个网页,该网页每秒点击该表 100 次(选择)。查询由非聚集索引覆盖(也包含在 SP 中)
我的问题是对于我们想要提高性能的特定场景,我们是否明智地创建一个视图,该视图将始终为该场景产生 300 行并索引视图并查询视图,或者如果我没有任何区别使用覆盖查询查询现有的 2M plus 表?
sql-server - 每个用户表都应该有一个聚集索引吗?
最近我在数据库中发现了几个没有定义聚集索引的表。但是定义了非聚集索引,所以它们在 HEAP 上。
在分析中,我发现 select 语句正在对非聚集索引中定义的列使用过滤器。
这些表上没有聚集索引会影响性能吗?
sql - 我的视图应该比我的存储过程慢得多吗?
我有一个似乎无法完全调整的观点,因此我尝试将其转换为 proc,将查询时使用的 WHERE 条件之一移动到参数中并在派生表中使用该参数。
看法
存储过程
EXEC myProc(100)比 SELECT * FROM myView WHERE StoreID = 100快得多。应该是这样吗?
注意:我知道这段代码可能没有完美的意义或运行——我试图通过删除其他一些 JOIN 来简化它。实际代码中唯一的实质性区别是将 WHERE 移到派生表中,我在这里已经完成了。
在执行派生表查询时视图不应该考虑我的 WHERE 并且与 proc 一样快吗?
谢谢你的帮助!
join - 优化 JOIN:与索引表的比较
假设我们有一个耗时的查询,如下所述:
让我们假设
返回许多行(比如说 10 M)。每一行都必须与 BAR 中的数据连接。
现在假设我们插入结果
在一个表中,并将临时索引添加到它。
我的问题:
使用实时查询的“JOIN”性能与“JOIN”对包含先前实时查询结果的表的性能有何不同,该表将添加临时索引?
另一种说法:
如果 JOIN 很慢,实际存储和索引我们 JOIN 到的表会有什么好处吗?
sql - 如何知道给定查询生成的数据量?
通常,使用 COUNT(*) 可以知道查询返回的行数。
以同样的方式,有没有办法知道给定查询的输出是多少兆字节?
就像是
编辑:我喜欢 *exec sp_spaceused ... * 方法,因为它可以编写脚本!
sql - 简单的自联接查询性能不佳
任何人都可以就如何提高以下查询的性能提出建议。请注意,问题似乎是由where
子句引起的。
数据(表包含大量行 - 500K+,调用它的参数集假定每个查询返回 2-5K 记录,目前需要 8-10 分钟):
查询
更新 1 - 执行计划