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

SQL组合查询及先后顺序对效率的影响

在SQL跨表组合查询存在效率问题,举例比如
delete from media_source where movie_id in ( select media_id from media where type=2 ) and origin = 3;

delete from media_source where origin = 3 and movie_id in ( select media_id from media where type=2 );
的效率是不一样的。
若origin=3的情况下media_source表中数据量相对比 select media_id from media where type=2大,那么写在后面比写在前面的效率很大。
总的来说,组合查询就要查询结果比较少的查询放在前面,有点像linux的管道了。虽然这里逻辑上是and的关系,但是查询还是有先后顺序。


相关文档:

SQL 注入




SQL注入就不用介绍了,网上很多。下面介绍一下防止
SQL注入的方法。
使用
quotename 函数和
sp_executesql
参考如
下表结构:这是一个文档表里面有一些简单的字段信息
CREATE
TABLE
[dbo]
.
[DocumentInfo]
(
    [ID]
[int]
IDENTITY
(
1,
1) primary key
 NOT
......

SQL 2005中文乱码问题

使用SQL SERVER2005的时候遇到了中文字符为乱码的情况,经过研究发现,设置SQL的排序规则可以解决这个问题。
1、登录服务器打开Microsoft SQL Server Management Studio。
2、在要修改的数据库上单击鼠标右键,并选择“属性”。
3、在弹出的数据库属性窗口中点击“选择页”中的“选项”。 ......

SQL Server 2008阻止保存要求重新创建表的更改


新建数据表以后,若再对该表进行更改,则会出现警告信息“不允许保存更改 阻止保存要求重新创建表的更改”,等等,需要进行一下设置:工具--->选项--->Designers--->表设计器和数据库设计器--->组织保存要求重新创建表的更改,去掉复选框。
来源网络:“不是很理解为什么在2008中会加入"阻止 ......

比较Oracle SQL中的IN & EXISTS

在Oracle SQL中取数据时有时要用到in 和 exists 那么他们有什么区别呢?
1 性能上的比较
比如Select * from T1 where x in ( select y from T2 )
执行的过程相当于:
select *
  from t1, ( select distinct y from t2 ) t2
 where t1.x = t2.y;
相对的
select * from t1 where exists ( select null fro ......

记录几条感觉不错的sql语句

SELECT id,ip,from_unixtime(last_task_request_time) t1, from_unixtime(last_task_finish_time) t2
from yq_nodemanage
WHERE node_type=1
ORDER BY t1 DESC;
SELECT sum(unix_timestamp(gather_time)-unix_timestamp(publish_time))/(count(*)*60) from yq_bbs_docinfo
WHERE unix_timestamp(publish_time)>un ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号