wat*_*rif 40 c# sql sql-server ado.net sqldatareader
我需要使用C#将SqlServer上的表中的一列字符串加载到内存中的Array中.有没有比打开SqlDataReader更快的方法并循环它.表很大,时间很关键.
编辑我正在尝试构建.dll并在服务器上使用它来进行数据库上的某些操作.但现在要放慢速度.如果这比我重新设计数据库要快.我很难有可能有一些解决方案如何加快速度.
bad*_*d99 52
数据阅读器
关于最快的访问,你将获得SQL与SqlDataReader.
简介它
值得实际分析您的性能问题.通常,在您认为性能问题出现之后,在您对其进行分析后证明是完全错误的.
例如,它可能是:
单独分析这些内容可以让您更好地了解瓶颈的位置.为了分析您的代码,有一篇来自Microsoft的精彩文章
缓存它
看的东西在提高性能是制定出如果你需要在每次加载所有的数据.可以缓存列表(或其中的一部分)吗?看一下新的System.Runtime.Caching命名空间.
重写为T-SQL
如果您正在进行纯粹的数据操作(正如您的问题所示),您可以重写使用数据为T-SQL并在SQL上本机运行的代码.这有可能更快,因为您将直接处理数据而不是转移它.
如果您的代码具有许多必要的过程逻辑,您可以尝试将T-SQL与CLR集成混合,为您提供两个世界的好处.
这很大程度上归结为逻辑的复杂性(或更多程序性).
如果一切都失败了
如果所有区域都是最佳的(或接近),并且您的设计没有错误.我甚至不会进入微优化,我只是扔硬件.
什么硬件?尝试使用可靠性和性能监视器来找出瓶颈的位置.最有可能解决您描述HDD或RAM的问题.
SqlDataReader是最快的方法.确保使用get by序数方法而不是按列名称获取.例如GetString(1);
同样值得的是在连接字符串中试验MinPoolSize,以便池中始终存在一些连接.
| 归档时间: |
|
| 查看次数: |
36948 次 |
| 最近记录: |