相关疑难解决方法(0)

SQL Server:查询速度快,但程序速度慢

查询运行速度很快:

DECLARE @SessionGUID uniqueidentifier
SET @SessionGUID = 'BCBA333C-B6A1-4155-9833-C495F22EA908'

SELECT *
FROM Report_Opener
WHERE SessionGUID = @SessionGUID
ORDER BY CurrencyTypeOrder, Rank
Run Code Online (Sandbox Code Playgroud)

子树成本:0.502

但是将相同的SQL放在存储过程中运行速度很慢,并且执行计划完全不同

CREATE PROCEDURE dbo.ViewOpener @SessionGUID uniqueidentifier AS
SELECT *
FROM Report_Opener
WHERE SessionGUID = @SessionGUID
ORDER BY CurrencyTypeOrder, Rank

EXECUTE ViewOpener @SessionGUID
Run Code Online (Sandbox Code Playgroud)

子树成本:19.2

我跑了

sp_recompile ViewOpener
Run Code Online (Sandbox Code Playgroud)

它仍然运行相同(严重),我也已将存储过程更改为

CREATE PROCEDURE dbo.ViewOpener @SessionGUID uniqueidentifier AS
SELECT *, 'recompile please'
FROM Report_Opener
WHERE SessionGUID = @SessionGUID
ORDER BY CurrencyTypeOrder, Rank
Run Code Online (Sandbox Code Playgroud)

然后再回来,试图真正欺骗它重新编译.

我已经删除并重新创建存储过程以使其生成新计划.

我尝试使用一个诱饵变量强制重新编译,并防止参数嗅探:

CREATE PROCEDURE dbo.ViewOpener @SessionGUID uniqueidentifier AS

DECLARE …
Run Code Online (Sandbox Code Playgroud)

sql-server performance stored-procedures

246
推荐指数
5
解决办法
18万
查看次数

从SQL转移到NoSQL和哪个DB?

我们最近在当前的SQL Server数据库中遇到了与性能相关的主要问题.我们的应用程序在单个表上非常繁重,我们进行了一些分析,大约90%的数据库数据都在一个表中.我们在此表上运行了大量查询以用于分析目的,我们现在遇到了主要的性能问题,即使添加单个列有时会减慢我们当前的Sp.我们的大多数团队都是开发人员,我们无法访问dba,这可能有助于重新调整当前数据库并使工作更快.

这些约束的原因我们正考虑将应用程序的这一部分移动到NoSQL数据库.我的问题是:

  1. 如果这是我们前进的正确方向?正如我们期待这张桌子呈指数级增长.随着大量分析在其上运行.
  2. 哪个是CouchDB,Cassandra,MongoDB的最佳选择?强调可扩展性和性能
  3. 对于类似于SQL的实时分析和支持,如何在NoSQL中工作,我们可以通过它来查看存储的当前数据吗?我曾经读过有关Hadoop的HIVE可以用来编写和检索数据,因为来自NoSQL db的SQL是对的吗?
  4. 在从SQL转移到NoSQL的过程中,我们可能会失去什么?

nosql

7
推荐指数
1
解决办法
855
查看次数