在数据库中sql查询很快,但在程序中查询较慢的解决方法
2015-03-16 13:46
726 查看
在写c#WS的时候,有一个方法查询速度比其他方法慢很多,但在数据库查询很快,原来是因为程序中使用参数化查询时参数类型错误的原因
代码如下
string sql = "SELECT * FROM LIS_V_LABTESTSAMPLE WHERE PATIENT_ID=:P";
HlsAccess.CommandText = sql;
HlsAccess.Parameters.Clear();
HlsAccess.Parameters.Add(":P", Oracle.DataAccess.Client.OracleDbType.Varchar2).Value = patId;
这里指定了参数的类型为varchar2,但是数据库确实number,这时就会造成字段类型错误导致了表扫描,最后导致查询速度慢。
参考博客地址:http://www.cnblogs.com/fxwdl/archive/2008/07/31/1257409.html
代码如下
string sql = "SELECT * FROM LIS_V_LABTESTSAMPLE WHERE PATIENT_ID=:P";
HlsAccess.CommandText = sql;
HlsAccess.Parameters.Clear();
HlsAccess.Parameters.Add(":P", Oracle.DataAccess.Client.OracleDbType.Varchar2).Value = patId;
这里指定了参数的类型为varchar2,但是数据库确实number,这时就会造成字段类型错误导致了表扫描,最后导致查询速度慢。
参考博客地址:http://www.cnblogs.com/fxwdl/archive/2008/07/31/1257409.html
相关文章推荐
- 【C#】对异步请求处理程序IHttpAsyncHandler的理解和分享一个易用性封装 【手记】走近科学之为什么明明实现了IEnumerable<T>的类型却不能调用LINQ扩展方法 【手记】手机网页弹出层后屏蔽底层的滑动响应 【手记】ASP.NET提示“未能创建类型”处理 【Web】一个非常简单的移动web消息框 【手记】解决EXCEL跑SQL遇“查询无法运行或数据库表无法打开...”
- Delphi XE8中开发DataSnap程序常见问题和解决方法 (二)想对DBExpress的TSQLDataSet写对数据库操作的SQL语句出错了!
- Delphi XE8中开发DataSnap程序常见问题和解决方法 (二)想对DBExpress的TSQLDataSet写对数据库操作的SQL语句出错了!
- sql的select出现堵塞导致程序卡死的解决方法(在事务中查询)
- 最近sql注入数据库被更改泛滥,以下提供一个.net程序防止sql注入的方法
- Delphi使用BDE连接远程MS SQL SERVER 2000数据库时出现“Db-library network communciations layer not loaded.”错误的解决方法
- SQL2005的SQL Server Management Studio对大数据库操作超时解决方法
- SQL还原数据库时发生错误,"因为数据库正在使用,所以未能获得对数据库的排它访问权。"解决方法。
- 关于SQL安装时出现的有程序安装挂起问题的解决方法
- Delphi使用BDE连接远程MS SQL SERVER 2000数据库时出现“Db-library network communciations layer not loaded.”错误的解决方法
- flash cs3 安装程序数据库损坏无法安装的解决方法
- MS SQL Server 2000版在windows server 2003企业版系统上运行时造成数据库suspect的解决方法
- MS SQL Server 2000版在windows server 2003企业版系统上运行时造成数据库suspect的解决方法
- Delphi使用BDE连接远程MS SQL SERVER 2000数据库时出现“Db-library network communciations layer not loaded.”错误的解决方法
- 执行SQL语句时出现问题操作必须使用一个可更新的查询错误的解决方法
- SQL2005的SQL Server Management Studio对大数据库操作超时解决方法
- 解决由于SQL查询时间长导致程序假死状态
- 数据库查询速度优化 2 优化SQL语句方法
- "执行SQL语句时出现问题操作必须使用一个可更新的查询"错误的解决方法
- MS-sql 2005拒绝了对对象 'xxx' (数据库 'xxx',架构 'dbo')的 SELECT 权限的解决方法