【SQL优化01(转载)】教程文章相关的互联网学习教程文章

SQL 优化

不好的sql可能存在的问题:性能低、执行时间长、等待时间长、sql语句欠佳(连接查询)、索引失效、服务器参数设置不合理(缓冲区、线程数) 编写过程:select distinct.. from.. join..on.. where.. group by.. having.. order by.. limit.. 解析过程:from.. on.. join.. where.. group by.. having.. select distinct.. order by.. limit.. SQL 优化标签:问题: mit 好的 缓冲 语句 过程 服务 order by havi...

SQL优化

sql的优化相关问题 答: 这篇文章写的真心不错,值得仔细拜读,所以将其转载过来了。 近期因工作需要,希望比较全面的总结下SQL SERVER数据库性能优化相关的注意事项,在网上搜索了一下,发现很多文章,有的都列出了上百条,但是仔细看发现,有很多似是而非或者过时(可能对SQL SERVER6.5以前的版本或者Oracle是适用的)的信息,只好自己根据以前的经验和测试结果进行总结了。 我始终认为,一个系统的性能的提高,不单单是试运行或者...

30条sql优化

1、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。3、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描。如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t where num=04、...

[ORALCE]SQL 优化案例之 10046事件,查看硬解析【代码】【图】

1.开启10046事件drop table TX1 purge; create table TX1 (x int); set linesize 266 set pagesize 5000 alter system flush shared_pool; alter system flush buffer_cache; alter session set events 10046 trace name context forever,level 12;2.批量硬解析操作beginfor i in 1..100000loop execute immediateinsert into TX1 values (||i||);end loop;commit; end; /3.关闭10046事件alter session set events 10046 trace nam...

SQL优化小讲堂(二)——使用正确的去重方法【代码】【图】

SQL专栏 SQL基础知识汇总 SQL高级知识汇总 鉴于不少同学对SQL优化不是很感兴趣,以后放在次条推送,有兴趣的小伙伴还请继续关注。 上一讲我们使用DISTINCT来去掉重复行以提高查询效率,这和小伙伴们平常听到的一条优化建议:尽量少使用DISTINCT相悖。下面我们来看看DISTINCT到底该不该使用。如果不想看处理过程的可以直接跳到红色结论部分。 1.使用DISTINCT去掉重复数据 我们重复一下上一讲的例子:SELECT DISTINCT UnitPrice FROM ...

SQL优化 第七章 查询转换 半连接和内连接转换【图】

参考资料: 本系列博客主要参考资料有CUUG冉乃纲老师数据库教学笔记,《SQL优化核心思想》(罗炳森,黄超,钟侥著),《PostgreSQL技术内幕:查询优化深度探索》(张树杰著),排名不分先后。 1 半连接和内连接转换 1.1 环境准备 create table tests1 as select * from dba_objects; create table tests2 as select * from dba_objects; 1.2 问题SQL EXPLAIN PLAN FOR SELECT DISTINCT A.OWNER FROM tests1 A WHERE A.OWNER ...

SQL优化小讲堂(七)——合理使用变量

SQL专栏 SQL基础知识汇总 SQL高级知识汇总 新手小伙伴平时可能比较少用到变量,其实变量在数据查询过程中经常使用到,而且可以有效提高查询速度。 1什么是变量 变量其实就是我们定义的一个可变参数,其基本语法如下: --定义一个名称为@I的变量,指定其类型为整数 DECLARE @I VARCHAR(20) --对变量@I赋值为 SET @I=SQL数据库开发 --输出@I的值 SELECT @I 结果:SQL数据库开发其中DECLARE @部分是固定写法,@I是变量名称,变量必须定...

数据库SQL优化(百万级数据库优化方案)【代码】

1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null最好不要给数据库留NULL,尽可能的使用 NOT NULL填充数据库. 备注、描述、评论之类的可以设置为 NULL,其他的,最好不要使用NULL。 不要以为 NULL 不需要空间,比如:char(100) 型,在字段建立...

SQL优化【代码】

SQL优化 1.负向查询不使用索引(实质上就是检索) select name from user where id not in (1,3,4); 应该修改为: select name from user where id in (2,5,6); 2.前导模糊查询不使用索引(%zhangsan),非前导则可以(zhangsan%) 3.数据区分不明显的不建议创建索引 4.字段的默认值不要为 null 5.在字段上进行计算不能命中索引 select name from user where FROM_UNIXTIME(create_time) < CURDATE(); 应该修改为: select name from ...

一个表空间使用率查询sql的优化【代码】

话不多说,直接上执行计划: SQL> set lines 500; SQL> set pagesize 9999; SQL> set long 9999; SQL> select * from table(dbms_xplan.display_cursor(41348610,null,advanced));PLAN_TABLE_OUTPUT -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------...

数据库SQL优化大总结【代码】

最好不要给数据库留NULL,尽可能的使用 NOT NULL填充数据库. 备注、描述、评论之类的可以设置为 NULL,其他的,最好不要使用NULL。 不要以为 NULL 不需要空间,比如:char(100) 型,在字段建立时,空间就固定了, 不管是否插入值(NULL也包含在内),都是占用 100个字符的空间的,如果是varchar这样的变长字段, null 不占用空间。可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t where num = 0...

线上SQL优化【代码】【图】

show create table test\G *************************** 1. row ***************************Table: test Create Table: CREATE TABLE `test` (`id` int(11) NOT NULL AUTO_INCREMENT,`aa_id` int(11) DEFAULT NULL,`dealername` varchar(45) DEFAULT NULL,`dealertype` int(2) DEFAULT NULL,`bb_id` int(11) NOT NULL,`membername` varchar(45) DEFAULT NULL,`createat` datetime DEFAULT NULL,`creator_id` int(11) DEFA...

sql优化

加快检索速度,降低增删改速度在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间。选择性高的列上创建索引复合索引的主列应该是最有选择性的和where限定条件最常用的列。一个索引是按f1,f2,f3的次序建立的,若where子句是f2 = :var2,则因为f2不是索引的第1个字段,无法使用该索引:create index abc on student(sid,sname)create index abc1 on student(sname,sid)这两种索引方式是不一样的,索引abc对s...

《跨 界 之SQL、PL/SQL优化指南》目录上

一.理论篇....................................................................10 1.1). SQL的处理过程.......................................................10 1.2). 连接方式(JOIN METHODS)..............................................10 1.2.1). 嵌套循环连接(Nested Loops Joins)..............................11 1.2.2). 哈希连接(Hash Joins)........................................12 ...

Mysq优化之SQL优化执行QEP(执行计划)【图】

使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈。 explain执行计划包含的信息其中最重要的字段为:id、type、key、rows、Extra 各字段详解 id select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序 三种情况: 1、id相同:执行顺序由上至下 2、id不同:如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行 3、...