- 浏览: 102672 次
- 性别:
- 来自: 北京
文章分类
最新评论
1、使用绑定变量
不良的写法:
select * from basetab where msisdn=‘13800138000’
正确的写法:
select * from basetab where msisdn=:1
在jdbc中使用preparedstatement
2、不要频繁的commit
不正确的方法:
insert into basetab values(….);
commit;
insert into basetab values(….);
commit;
正确的方法:
insert into basetab values(….);
insert into basetab values(….);
commit;
禁止在jdbc中使用AutoCommit
3、尽量避免分表设计
不好的方式:
按每天或每月一张表
应用开发要根据时间判断操作哪个表
会写成动态的SQL
正确的方式:
使用时间分区表
4、谨慎设计索引
如果查询的结果集为表中记录5%以上使用索引用效
如果查询的结果集数量接近表记录数,使用索引无效
5、正确使用组合索引
create index inx_bas_msi_obj on subscribeinfo(msisdn,objectid);
正确的SQL写法:
select * from subscribeinfo where msisdn=:1 and objectid=:2
不正确的SQL写法:
Select * from subscribeinfo where objectid=:1 and msisdn=:2
1、有表达式的字段无法使用索引
不良习惯:
select * from mydata where 100>salary
Select * from mydate where salary +1 >100;
良好习惯:
select * from mydata where salary<100
2、避免索引字值数据类型转换
create table tx(txtd varchar2(100));
create index idx_txtd on tx(txtd);
不正确的方法
select * from tx where txtd=100;
正确的方法
select * from tx where txtd=‘100’
3、小心 is null 操作
NULL值不在索引中,如果用is null操作会使用不了索引
4、正确使用动态语句
正确的方式:
execute immediate ‘insert into t values(:x)’ using i;
不好的方式:
execute immediate ‘insert into t values(‘||i||’)’;
不良的写法:
select * from basetab where msisdn=‘13800138000’
正确的写法:
select * from basetab where msisdn=:1
在jdbc中使用preparedstatement
2、不要频繁的commit
不正确的方法:
insert into basetab values(….);
commit;
insert into basetab values(….);
commit;
正确的方法:
insert into basetab values(….);
insert into basetab values(….);
commit;
禁止在jdbc中使用AutoCommit
3、尽量避免分表设计
不好的方式:
按每天或每月一张表
应用开发要根据时间判断操作哪个表
会写成动态的SQL
正确的方式:
使用时间分区表
4、谨慎设计索引
如果查询的结果集为表中记录5%以上使用索引用效
如果查询的结果集数量接近表记录数,使用索引无效
5、正确使用组合索引
create index inx_bas_msi_obj on subscribeinfo(msisdn,objectid);
正确的SQL写法:
select * from subscribeinfo where msisdn=:1 and objectid=:2
不正确的SQL写法:
Select * from subscribeinfo where objectid=:1 and msisdn=:2
1、有表达式的字段无法使用索引
不良习惯:
select * from mydata where 100>salary
Select * from mydate where salary +1 >100;
良好习惯:
select * from mydata where salary<100
2、避免索引字值数据类型转换
create table tx(txtd varchar2(100));
create index idx_txtd on tx(txtd);
不正确的方法
select * from tx where txtd=100;
正确的方法
select * from tx where txtd=‘100’
3、小心 is null 操作
NULL值不在索引中,如果用is null操作会使用不了索引
4、正确使用动态语句
正确的方式:
execute immediate ‘insert into t values(:x)’ using i;
不好的方式:
execute immediate ‘insert into t values(‘||i||’)’;
发表评论
-
查找mysql中的非空表
2012-08-08 10:15 1901SELECT table_schema, table_type ... -
oracle横纵表转换的两种方式
2012-05-28 20:11 797select url,wmsys.wm_concat(alia ... -
查找oracle中的非空表
2012-05-17 11:19 10141.创建表 create table D ( NO N ... -
oracle
2012-05-09 21:24 0http://hwhuang.iteye.com/blog/5 ... -
blog
2011-12-26 16:45 0http://tech.it168.com/a2008/082 ... -
如何区别数据库访问的客户端
2011-12-06 22:17 886java.util.Properties props = ne ... -
varchar2(20)与varchar2(20 char)的区别
2011-11-23 11:28 0varchar2(20)与varchar2(20 cha ... -
如何查看数据库中被锁定的对象
2011-11-20 08:40 908select * from v$locked_object; ... -
如何找到数据库对象定义集合
2011-11-22 18:30 761如何找到数据库所有视图的定义 SQL> select v ... -
如何找到占用CPU极高的线程执行的SQL语句
2011-11-22 18:39 1222其实只是一条语句,步步递进 Select addr from ... -
如何手动找出当前数据库的top 5的SQL语句
2011-11-22 18:41 1834大家在statspack报告中经常会去查看top5的语句,但想 ... -
【ORACLE&DB2】中如何删除一个表中重复数据,仅留其中一行
2011-11-24 13:02 2453首先看一下ORACLE中的情况: delete from te ... -
Oracle内存表
2011-11-01 17:42 2335alter table xxx storage(buffer_ ... -
PL/SQL编程
2011-10-29 12:53 6151、基本块结构 DECLARE /* Dec ... -
常用oracle监控语句1
2011-10-28 12:55 7121、查看表锁 select V$SESSION.sid,v$s ... -
创建分区表
2011-10-27 20:12 0create table smsmsginfo ( ... -
CHAR VARCHAR VARCHAR2
2011-10-27 16:36 767char 2000 长度固定 ... -
oracle主线文档
2011-10-27 09:05 657http://www.oracle.com/pls/db102 ...
相关推荐
本文将探讨编写高性能SQL语句时应注意的一些事项。 1. **处理NULL值**: - `IS NULL` 和 `IS NOT NULL` 操作在含有NULL值的列上不会使用索引,导致全表扫描。因此,尽量避免在索引列上使用NULL值,同时避免在WHERE...
该演讲文稿总结了一些sql语句编写的注意事项,如考虑网络负担啊,存储空间等细节问题。
在编写SQL语句时,遵循以下步骤可以提高代码质量: 1. 先构建基本框架:从`SELECT`开始,然后是`FROM`,接着是`WHERE`,最后是`ORDER BY`。 2. 明确表和别名:先列出所有参与的表,并为每个表分配一个唯一的别名,...
在SQL编程中,正确编写SQL语句对于数据库性能至关重要。以下是一些基本的SQL编写注意事项,这些技巧适用于SQL Server 2000等系统,旨在提高查询效率和减少全表扫描。 1. 避免过度使用`IN`操作符。`EXISTS`通常比`IN...
2. 避免使用SELECT *:在编写SQL查询时,尽量避免使用`SELECT *`来获取所有列,这可能导致不必要的性能开销,尤其是当表结构更改时。指定需要的列名可以提高查询效率,也有助于减少因新增列而产生的潜在问题。 3. ...
本文将详细探讨几个关于优化SQL语句执行效率的重要注意事项,旨在帮助数据库管理员和开发者提升系统性能。 首先,理解索引的作用与创建策略是优化SQL的第一步。索引可以大幅提高数据检索速度,但并不是所有字段都...
MyBatis动态SQL是一项强大的特性,它允许开发者在编写SQL语句时根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据库操作。这项技术尤其适用于处理复杂多变的业务需求,因为它极大地提高了SQL语句的...
#### 四、注意事项 - **错误处理**: 在编写代码时,一定要注意异常处理,确保在出现错误时能够妥善地回滚事务,避免数据不一致的情况发生。 - **性能考虑**: 在大量数据处理场景下,应考虑使用批处理等方式提高...
本文档主要介绍在XML配置文件中如何编写SQL语句,以及相关的属性配置。 #### 二、SQL语句占位符详解 在MyBatis中,编写SQL语句时可以使用两种不同的占位符:`#{}` 和 `${}`。这两种占位符在功能上有显著差异,了解...
6. 注意事项: - 数据类型匹配:生成INSERT语句时,要确保提供的值与目标表的列数据类型相匹配,否则可能会导致插入失败。 - 避免重复数据:在批量插入时,如果表已有相同的数据,可能会引发错误。使用ON ...
在许多场景下,SQL语句或其参数在编写代码时是未知的,只有在程序运行时才能确定,比如基于用户输入的搜索查询、基于条件的列选择或者数据库对象的引用。在这种情况下,动态SQL提供了一种解决方案,它允许在运行时...
在数据库管理和数据处理工作中,编写SQL语句是一项基础且重要的任务。然而,手动编写复杂的SQL命令可能会耗费大量时间和精力,尤其对于不熟悉SQL语法或者需要处理大量数据的用户而言。SQL语句生成器通过图形化界面和...
如何写出高效率的SQL语句--SQL优化技巧 SQL 优化技巧是提高数据库性能的关键所在。编写高效率的 SQL 语句需要对索引的机制有一定了解,以下是关于索引的知识点: 索引的优点和局限 索引可以提高查询的效率,但会...