代码之家  ›  专栏  ›  技术社区  ›  Beatles1692

Ado.net性能:SNIReadSync做什么?

  •  3
  • Beatles1692  · 技术社区  · 16 年前

    我们有一个在SQLServerManagementStudio中运行需要2秒的查询,但在客户端屏幕上显示需要13秒。 我使用dotTrace来分析我的源代码,注意到有一个SNIReadSync方法(ADO.net程序集的一部分)需要花费大量的时间来完成它的工作(9秒)。

    不管我使用的是OleDBConnection还是SqlConnection。

    无论我使用的是数据读取器还是数据集。

    连接池并不能解决这个问题(如我的结果所示)。

    我在google上搜索了这个问题,却找不到这个问题的答案,即这个方法到底在做什么,以及我们如何改进它。

    下面是我在斯塔科弗流上发现的也没用的东西: https://stackoverflow.com/questions/1610874/snireadsync-executing-between-120-500-ms-for-a-simple-query-what-do-i-look-for

    1 回复  |  直到 9 年前
        1
  •  2
  •   Mitch Wheat    16 年前

    忽略 SNIReadSync 有那么一会儿(我想这可能是个骗局)。

    您所描述的症状听起来像是缓存不正确的查询计划。

    请更新您的统计信息(或重建索引)并查看是否仍然发生。