代码改变世界

Oracle数据库中sql查询很快,但在程序中查询较慢的原因和解决方法

2021-03-03 17:06  假面Wilson  阅读(3318)  评论(0编辑  收藏  举报

代码如下 

            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.NVarchar2).Value = patId;

这里指定了参数的类型为Nvarchar2,但是数据库字段类型是Varchar2,这时就会造成字段类型错误导致了表扫描,最后导致查询速度慢。 

解决方案就是参数改成Varchar2即可。