• 执行存储过程比即时SQL执行慢的解决方案


    发生过这样一件事, 写了一个SQL,查询数据大概5秒,但是放到存储过程里面去了过后,查了5分钟也没给出结果,后来网上找解决方案,终于找到一个解决方案。

    在存储过程的参数那里对参数进行一个传递。反正他们说的参数嗅探是这个意思。这是存储过程的机制。具体是什么,大家去网上搜索下。

    ALTER PROCEDURE SelUserRecordGameScoreInfoByKindID
    @varTime1 DATETIME,
    @varTime2 DATETIME,
    @varKindID INT,
    @vartype INT
    AS BEGIN
    DECLARE
    @TIME1 DATETIME,
    @TIME2 DATETIME,
    @KindID INT,
    @type INT
    SET @Time1=@varTime1
    SET @Time2=@varTime2
    SET @KindID=@varKindID
    SET @type=@vartype

    这样能解决了。

    引用别人的一句话:

    其实简单来讲,参数嗅探我的很通俗的解释就是:SQLSERVER用鼻子嗅不到具体参数是多少

    所以他不能选择最合适的执行计划去执行你的查询,所以参数嗅探是一个不好的现象。

    有一篇文章可以参考下。

    http://www.cnblogs.com/lyhabc/archive/2013/03/02/2941144.html

  • 相关阅读:
    2.17-2.23第一周总结
    10号总结
    9日总结
    8号总结
    7号寒假总结
    6号
    读后感《程序员的修炼之道:从小工到专家》1
    java第二次动手动脑
    回文判断
    二进制的原码,反码以及补码介绍
  • 原文地址:https://www.cnblogs.com/xiaoquangege/p/6652026.html
Copyright © 2020-2023  润新知