SQL提高性能
1、对外键建立索引,大数据量时性能提高明显(建索引可以直接【Merge Join】,否则还须在查询时生成HASH表作【Hash Join】)
2、尽量少使用inner join,使用left join是更好的选择
3、对where 条件建立索引,where 条件中列顺序与索引顺序一致,使用前置的模糊查询时,索引无效
4、有时候使用union 比join 效率更好(因为join连接比较费时)
5、有时候自定义函数比长的SQL更有效(是因为函数是已编译过的,长SQL是在执行是编译?)
6、使用exists(not exists)函数替代in(not in),大数据量时效率提高明显(很好理解,exists,在查询时直接匹配对应的项,而in,则每一个匹配的内容都要便利in的内容)
使用exists(not exists)函数替代in(not in),提高执行效率
select RoomTypeId from roomtype where roomtypeid not in
(select roomtype from fun_SelectPrice('2007-10-28','2007-12-11',100,300))
select RoomTypeId from roomtype where not exists
(select * from fun_SelectPrice('2007-10-28','2007-12-11',100,300) where roomtypeid =roomtype )
http://www.cnblogs.com/zihunqingxin/archive/2013/06/15/3137610.html 也有类似的举例
7、 索引不可过多,索引过多将会使Insert ,Update, Delete变慢
C#中使用SQL注意:
1、建立尽量少的connection,连接是宝贵资源。
2、尽量少的执行command
3、transaction应尽量晚开始,尽量快终止
4、尽量少的使用前置模糊查询,前置模糊查询索引失效。
5、必要时使用存储过程,存储过程,减少通信(长SQL,只个别参数的区别),减少编译时间,存储过程是编译好的直接执行
SQL提高性能的更多相关文章
- SQL 提高性能
参考博客:http://www.cnblogs.com/jiekzou/p/5988099.html 非常感谢博主分享. 1.set nocount on 关闭行基数信息,减少网络通信,提高程序性能 ...
- SQL Server SQL性能优化之--通过拆分SQL提高执行效率,以及性能高低背后的原因
复杂SQL拆分优化 拆分SQL是性能优化一种非常有效的方法之一, 具体就是将复杂的SQL按照一定的逻辑逐步分解成简单的SQL,借助临时表,最后执行一个等价的逻辑,已达到高效执行的目的 一直想写一遍通过 ...
- 使用WITH AS提高性能简化嵌套SQL(转载)
使用WITH AS提高性能简化嵌套SQL http://www.cnblogs.com/fygh/archive/2011/08/31/2160266.html
- SQL Server 性能优化之——系统化方法提高性能
SQL Server 性能优化之——系统化方法提高性能 阅读导航 1. 概述 2. 规范逻辑数据库设计 3. 使用高效索引设计 4. 使用高效的查询设计 5. 使用技术分析低性能 6. 总结 1. 概 ...
- 使用SQL Server 2000索引视图提高性能
什么是索引视图? 许多年来,Microsoft? SQL Server? 一直都提供创建虚拟表(称为视图)的功能.在过去,这些视图主要有两种用途: 提供安全机制,将用户限制在一个或多个基表中的数据的某 ...
- 转:使用WITH AS提高性能简化嵌套SQL
使用WITH AS提高性能简化嵌套SQL 一.WITH AS的含义 WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片 ...
- 如何提高sql查询性能到达优化程序的目的
1.关于SQL查询效率,100w数据 SQL查询效率 step by step -- setp 1.-- 建表create table t_userinfo(userid int identity(1 ...
- 【SQL Server性能优化】运用SQL Server的全文检索来提高模糊匹配的效率
原文:[SQL Server性能优化]运用SQL Server的全文检索来提高模糊匹配的效率 今天去面试,这个公司的业务需要模糊查询数据,之前他们通过mongodb来存储数据,但他们说会有丢数据的问题 ...
- SQL 提高查询效率
1.关于SQL查询效率,100w数据,查询只要1秒,与您分享: 机器情况p4: 2.4内存: 1 Gos: windows 2003数据库: ms sql server 2000目的: 查询性能测试, ...
随机推荐
- 我的第一次JAVA实训——校园公用房管理系统
老铁们,昨天电脑没电了.这是上周答应的大项目. 别打脸. 详细内容我之后再写,下面是代码地址. Github地址 附:一个寂寞 以上
- Python对象赋值、浅拷贝、深拷贝
Python中,基本数据类型,理解为常见数据类型:布尔型.整型.浮点型.字符串.列表.元组.字典.集合,随语言不同而不同,但是根据在内存中存储方式的不同,区分开原子类型和容器类型. 对象赋值 对象的赋 ...
- 触发器-- 肖敏_入门系列_数据库进阶 60、触发器(三) --youku
二 https://v.youku.com/v_show/id_XMzkxOTc5NDY0OA==.html?spm=a2h0k.11417342.soresults.dtitle 三 https:/ ...
- java IO流的概念与分类
DataInputStream && ObjectInputStream 示例 https://blog.csdn.net/hoho_12/article/details/520543 ...
- linux 查看链接库的版本
我们编译可执行文件的时候,会链接各种依赖库, 但是怎么知道依赖库的版本正确呢? 下面有几种办法: ldd 这是比较差的,因为打印结果更与位置相关 dpkg -l | grep libprotobuf ...
- latex学习笔记----数学公式
https://www.jianshu.com/p/d7c4cf8dc62d 1.数学公式在 \( 和 \)之间,$和$之间,或者\begin{math}和\end{math}之间 2.对于较大 ...
- HttpClient apache上篇
1.什么是HttpClient Http 是Hyper-Text Transfer Protocol简写,迄今为止互联网应用最广泛的协议.网络服务.互联网应用.网络计算需求的增长,持续推动http协议 ...
- Maven--优化依赖
Maven 会自动解析所有项目的直接依赖和传递依赖,并且根据规则正确判断每个依赖的范围,对于一些依赖冲突,也能进行调节,以确保任何一个构件只有唯一的版本在依赖中存在.在这些工作之后,最后得到的那些依赖 ...
- MySQL--数据插入
1.创建表的同时插入其他表的数据 CREATE TABLE table_name SELECT ... FROM ... [...] 例: CREATE TABLE tabl_memory EN ...
- quartz定时任务(数据库需要的表)
Quartz将Job保存在数据库中所需表的说明 QRTZ_CALENDARS 以 Blob 类型存储 Quartz 的 Calendar 信息 QRTZ_CRON_TRIGGERS 存储 Cron T ...