sql优化 对like ‘%xx%’ 的替换
在SQL中可以使用Like进行模糊查询,例如 f_stuname like 'a%' 查询f_stuname列以a开头的记录。
当我们在应用中使用
f_stuname
like '%a%' 时,如果
f_stuname有索引的话,这个索引也是不执行的
在SQL优化中这个写法就是一个不好的SQL了。
那么如何来替换这个呢,这一个就用到了Oracle的instr函数了
我们可以这样做,把
SELECT t.* from tableName t WHERE t.f_srcname LIKE '%通过%'; (执行时间:0.063s)
替换
SELECT a.* from
tableName
a WHERE instr(a.f_srcname,'通过') > 0; (执行时间:0.031)
相关文档:
题目一:
有两张表:部门表department 部门编号dept_id 部门名称dept_name
员工表employee 员工编号emp_id ......
create table "user" (
id int identity,
constraint PK_USER prim ......
一直没有找到一种好的方法来引用有返回值的存储过程的方法,使我在添加数据中走了不少的弯路,最近,在查阅了大量的资料之后,终于在微软的一个实例中找到了一种良好的方法。
首先编写好一有返回值的存储过程
create procedure proc_name
@para1 nchar(20), --输入参数
@ ......
private void Create_Pz(string Sourcename)
{
string OutMsg;
SqlParameter[] sortPara = { new SqlParameter("@ps_IsType", Pz ......