易截截图软件、单文件、免安装、纯绿色、仅160KB

sql 问题 - Oracle / 开发

Select * from UserInfo where uif_UserCode in (1,12) 
用in在数据量大的时候效率不高,(1和12是传过来的值)除了这种方法还可以怎么写,
有人说用exists 到底要怎么写呢 ?
列表值不多,用in性能也啥大不了的
其实列表项不多,in 和exists差别很小
如果要用exists必须存在另一个表中,uif_UserCode上建立索引。
Select * from UserInfo a where exists( select 1 from tempUserInfo b where a.uif_UserCode =b.uif_UserCode )

引用
Select * from UserInfo where uif_UserCode in (1,12)
用in在数据量大的时候效率不高,(1和12是传过来的值)除了这种方法还可以怎么写,
有人说用exists 到底要怎么写呢 ?


in 的话只要范围不大跟exists关键字差不多 

要是范围大的话 可以考虑exists,可以建索引吧
Select * from UserInfo a where exists(select 1 from UserInfo where a.UserCode=UserCode)

Select * from UserInfo where uif_UserCode in (1,12) 

改成
Select * from UserInfo where uif_UserCode=1 or uif_UserCode=12

忘记哪个效率高了,呵呵,你试试

引用

Select * from UserInfo where uif_UserCode in (1,12)

改成
Select * from UserInfo where uif_UserCode=1 or uif_UserCode=12

忘记哪个效率高了,呵呵,你试试


传的1和12不是固定的,有可能还会是3个数或者更多呢?

如果不用exists还有什么更好的方法吗?

Select * from UserInfo where uif_UserCode=1 or uif_UserCode=12


相关问答:

Oracle离线访问---求助 - Oracle / 基础和管理

大家好,我现在把oracle服务器上面的原始文件,下载到本机了.我想在本机访问数据库怎么设置啊.是不是类似可以建立一个什么虚拟服务器来实现.请大家出出主意
引用
    大家好,我现在把oracle服务器上面 ......

oracle与aix - Oracle / 高级技术

在系统运行的时候总是有一块磁盘始终闪红灯,进入系统后
#topas查看总是有一块磁盘%BUSY为90%以上,
数据库版本:oracle 9.2.0.7 
数据文件挂载的节点:/oradata/pcs/ 逻辑卷号lv04 
#lslv -l lv04 ......

sql - MS-SQL Server / 疑难问题

sql的软件在哪里可以下啊!在网上找了蛮多都用不了啊

随便搞一D版吧,

迅雷第一个就可以用
2000,2005都这样

http://119.147.41.16/down?cid=0698C2D64D7D637D90A6D2482298E6717D4F15CD&t=2&fmt=-1 ......

求一SQL - MS-SQL Server / 基础类

tab1 字段:billdate,goodsid,incount,inmoney,outcount,outmoney,endprice,endcount,endamt
tab2 字段:goodsid,goodskind(商品类型)
tab3 字段:goodskind(商品类型),kindname
结果:
得到商品类型在一段时间 ......

oracle 10g data guard - Oracle / 基础和管理

做玩data guard 后
在Primary服务器 执行 
SQL>SELECT SEQUENCE#,APPLIED from V$ARCHIVED_LOG ORDER BY SEQUENCE#;
 SEQUENCE# APP
---------- ---
  13 NO
  13 YES ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号