彩票走势图

Linq to SQL Profiler使用注意事项——参数设置

原创|使用教程|编辑:龚雪|2014-01-20 09:26:38.000|阅读 176 次

概述:Linq to SQL Profiler是由以色列著名公司Hibernating Rhinos开发出来的数据库工具。并且该软件是由 OR/M 社区的高层领导人亲自开发设计,能够精准的帮助优化App的冗余的代码。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

常见注意事项:不同的参数大小会导致查询计划缓存的使用效率低下

Linq to SQL Profiler分析器检查到相同的语句使用了不同大小的相同参数后会导致什么问题?现在我们来假设一种查询情况:根据名字来找到用户(下面我们会用到一种语法来显示出参数的大小以达到演示的目的)。我们可以使用如下的查询方式:

exec sp_executesql 
      N'SELECT * FROM Users WHERE Username = @username',
      N'@username nvarchar(3)',
      @username=N'bob'
exec sp_executesql 
      N'SELECT * FROM Users WHERE Username = @username',
      N'@username nvarchar(4)',
      @username=N'john'

由于不同大小的参数,这串代码会导致让数据库查询缓存里出现两种查询计划。实际上,如果我们假设用户名的长度是16位字符,那么这次查询就会在查询缓存里占用16位。

更糟糕的是,如果还会出现参数大小发生改变的情况,例如用户名的长度和密码长度都为最长时(16位字符),就有可能占用查询缓存里的256位。因此很明显的是,如果使用的参数越多,或是参数的长度越长,那么占用查询缓存的资源就会急速增加。而如果当多个查询同时发生时,对于系统内存的消耗将是难以接受的,这很可能会导致性能出错。

在Linq to SQL 4.0,这个问题已被解决,方式是通过调用GetCommand来手动设置参数的长度,然后通过使用转换的功能来获得查询结果。

>>欢迎点此免费下载和试用Linq to SQL Profiler


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP