-
1. 尽量不要在 where 中包含子查询;
对于时间查询,尽量不要写: where to char(dif date,'yyyy-mm-dd')=to_char('2007-07-01','yyyy-mm-dd');
2.在过滤条件中,可以过滤掉最大记录数的条件必须放在where子句的末尾;
首先处理 from 子句末尾写的表(驱动表),如果 from 子句包含多个表,则必须选择记录最少的表作为基表。 如果有三个以上的联接查询,则需要选择一个交集表作为基础表,该表是其他表引用的表。
3. 采用绑定变量。
4.尽量不要在以下位置使用OR。
5. 用存在代替 in,用不存在代替 in;
6.避免对索引列进行计算:其中sal*12>25000;
7. 使用 in 代替 or:其中 loc id=10 或 loc id=15 或 loc id=20
8. 避免在索引列上使用 is null 和 is not null;
9 始终使用索引的第一列;
10. 用 union-all 代替 union;
11.避免更改索引列的类型:选择...。from emp where empno='123',由于隐式数据类型转换,转换为 char(empno)='123'因此,不会使用索引,并且通常会出现在使用字符串拼凑的动态 SQL 语句中;
12'!='不会使用索引;
13.优化分组依据;
14 避免使用带有类似参数的通配符,例如'4ye%'使用 index,但喜欢'%ye'不使用索引。
15.避免使用困难的形式表达,例如select * from customer,其中邮政编码喜欢"98___"即使在邮政编码上创建了索引,在这种情况下,仍使用顺序扫描方法。 如果将语句更改为从邮政编码的客户中选择*>"98000",在执行查询时会使用索引进行查询,这显然会大大提高速度;
16.尽可能清晰地完成SQL语句,让数据库尽可能少地工作。 例如,在编写 select 语句时,需要指定查询字段的表名。 尽量不要使用 select * 语句。
在组织SQL语句时,尽量按照数据库的习惯进行组织。
-
1、深入了解数据库的工作原理和数据存储方式,不同数据库的工作原理不同,MySQL Oracle DB2等也不同,更不用说一些NoSQL数据库和NewSQL数据库了。
2. 了解 SQL 语句检索数据的方式。
3、了解索引,知道建什么字段,建什么样的索引,什么索引能做,什么不能做,合理建立字段。
4.合理拆合并表,一个表中查询数据肯定比多个表级联查询要快。
5.任何数据库都有查看执行任务的方式,包括NoSQL数据库和NewSQL数据库以及一些大数据数据库; 同时,有必要对任务的执行情况进行分析,主要分析现场数据的使用效率和搜索方法。
6.SQL语句只是性能优化的一个简单方面,性能优化是从整体应用架构上体现出来的,优化SQL并不能解决根本问题,当数据量达到一定水平时,数据就不能用关系型数据库了,而是要用大数据数据库,这样SQL就没用了。
7.不要刻意关注SQL本身,SQL只是一种查询语言,它与性能无关,性能优化的本质在于对存储方法和查询检索过程的深入了解。
8、任何系统功能业务的准确性都是至高无上的,首先要保证功能的正确性,然后再考虑性能优化,如果功能数据量大,业务复杂,必须使用低性能的SQL检索方法,那么就只能妥协了,否则就要放弃SQL和关系型数据库另辟蹊径。
图 1 显示了一个网格 HPC 系统。 在网状网络拓扑中,结构通过减少网络节点之间的物理和逻辑距离来支持主机之间的更快通信。 虽然网络拓扑、硬件和处理硬件在 HPC 系统中很重要,但使系统如此有效的核心功能是由操作系统和应用软件提供的。 >>>More
减少设备中存储的数据量可以显著提高性能。 在设置中,您可以看到还剩下多少存储空间,还可以按降序查看每个应用程序正在使用多少空间。 如果您发现您的存储空间太满,请卸载占用大量空间并且您觉得可有可无的应用程序。 >>>More