首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏深蓝居

    .Net+SQL Server企业应用性能优化笔记3——SQL查询语句

    ANTS Profiler+SQL Server Profiler,这两个工具的完美搭配可以准确的定位性能是出在哪个函数,哪个SQL语句上。 举个简单的例子,假设经过跟踪发现,一个负责生成图表的函数存在性能问题,尤其是在压力测试情况下性能问题尤为严重。 多个存储过程被调用,如果性能出在数据库服务器上,那么进行性能优化时首先要调优的是最大Duration最大的存储过程,另外还有就是Reads很大的存储过程。 解决办法就是建立相应的索引,比如这里只需要对c2字段建立非聚集索引,然后将c3字段作为包行列就行了。 如果只是最c2字段建立非聚集索引,那么前面说到的查找在进行了“非聚集索引查找”后还会进行“键查找”来找到c3列的值,所以要建立的正确的索引才行。 不符合SARG原则。

    97920编辑于 2022-06-16
  • 来自专栏程序员奇点

    SQL 性能优化

    解析器按照从右到左的顺序处理FROM 字句中的表名,FROM 中写在最后的表(基础表, drving table)将先被处理,在FROM 子句中包含多个表的情况下,你必须选择记录条数最小的表作为基础表, 如果有3个以上的表连接查 ,选择交叉表(Insertection table)作为基础表,交叉表指的是被其他表锁引用的表 性能优化 SELECT语句务必指明字段名称 SELECT *增加很多不必要的消耗(cpu、io、内存、网络带宽 SQL语句中IN包含的值不应过多 MySQL对于IN做了相应的优化,即将IN中的常量全部存储在一个数组里面,而且这个数组是排好序的。但是如果数值较多,产生的消耗也是比较大的。 再例如:select id from table_name where num in(1,2,3) 对于连续的数值,能用 between 就不要用 in 了;再或者使用连接来替换 尽量用union all 如何高效的写出一个替代not exists的sql语句?

    1.1K40发布于 2019-08-30
  • 来自专栏用户8907256的专栏

    SQL性能优化以及性能测试

    SQL性能优化以及性能测试 博主介绍 笛卡尔连接 分页limit的sql优化的几种方法 笛卡尔连接 例1: 没有携带on的条件字句,此条slq查询的结构集等价于,a表包含的条数*b表包含的乘积: select 百度就是采用这种方式) count 优化方案 实例1: /** * 1:如果不包含非主键的索引,就会使用主键索引 * 2:如果包含非主键的索引就会使用非主键索引; * 3: 也是特别的快,做出了相应的优化 * * **/ select count(某个字段) from table 会把此字段的值为null过滤掉,仅仅只统计字段值不为null的 实例3: 通过explain 查看sql性能如果Extra的值为null时,说明是可以通过索引避免排序的.如果Extra的值是Using filesort 是不可以进行索引排序的 select * from table 4: 需要添加索引的几种场景: 1: 2: 3: 4: 5: 阿里规约一般join的表数,最好不要超过三张表; 如果超过的话就要就行做相应的拆分。

    1K30编辑于 2022-04-14
  • 来自专栏JAVA高级架构

    SQL性能优化梳理

    第一层:客户端通过连接服务,将要执行的sql指令传输过来 第二层:服务器解析并优化sql,生成最终的执行计划并执行 第三层:存储引擎,负责数据的储存和提取 1.2 锁 数据库通过锁机制来解决并发场景-共享锁 被用来设计处理大量短期事务,具有高性能和自动奔溃恢复的特性。 MyISAM引擎,不支持事务和行级锁,奔溃后无法安全恢复。 3.补充2个5.7版本的新特性: generated column,就是数据库中这一列由其他列计算而得 CREATE TABLE triangle (sidea DOUBLE, sideb DOUBLE , area DOUBLE AS (sidea * sideb / 2)); insert into triangle(sidea, sideb) values(3, 4); select * from "value2"}'); SELECT * FROM json_test WHERE JSON_CONTAINS(name, '$.name1'); ---->来自JVM专家-达 关注explain在性能分析中的使用

    1.3K70发布于 2018-04-19
  • 来自专栏辰远

    SQL电脑性能测试

    循环添加10w行数据,测试索引效果 USE myschool; #创建测试表 DROP TABLE IF EXISTS Test; CREATE TABLE Test( id INT, NAME VARCHAR(50) ); # 循环添加10W条数据数据 DROP PROCEDURE IF EXISTS usp_initial_data; DELIMITER // CREATE PROCEDURE usp_initial_data() BEGIN DECLARE i INT; SET

    3.1K40编辑于 2022-11-21
  • 来自专栏JMCui

    SQL优化二(SQL性能调优)

    )负责将更改的buffer 从db buffer cache中写到datafile中去,通过一个dbwn进程(dbw0)就足够了,但是也可以配置更多额外的dbwr进程,它可以提升频繁更改的数据库系统的性能 因为分离了更改数据库buffer的任务:dbwn散列写buffer到disk中,执行快速的顺序写到redo,所以数据库提升了性能。 1.用户提交了一个事务。 2. redo log switch 发生 3. SQL> begin 2 dbms_stats.create_stat_table(ownname => 'scott',stattab => 'STAT_TABLE'); 3 end; 4 / deptno from dept; 优化技巧18:Order By语句中的非索引列会降低性能,可以通过添加索引的方式处理。

    1.9K61发布于 2018-03-15
  • 来自专栏电光石火

    SQL 性能调优

    阅读目录 (1)选择最有效率的表名顺序(只在基于规则的优化器中有效) (2)WHERE子句中的连接顺序 (3)SELECT子句中避免使用 ‘ * ‘ (4)减少访问数据库的次数 (5)在SQL*Plus ,还要做到写出性能优良的SQL,以下为笔者学习、摘录、并汇总部分资料与大家分享! 两者的区别在于, 前者DBMS将直接跳到第一个DEPT等于4的记录而后者将首先定位到DEPTNO=3的记录并且向前扫描到第一个DEPT大于3的记录. 性能上的差异,关键看你的from和where子句。比如说如果你的where条件中可以通过索引,那显然 select 1 from ... 的性能比 select * from ... 好。 仔细检查order by语句以找出非索引项或者表达式,它们会降低性能

    4.7K10发布于 2019-12-13
  • 来自专栏全栈程序员必看

    编写高性能SQL

    在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的编写,刚开始不会体会出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一 在多数情况下,Oracle使用索引来更快的遍历表,优化器主要根据定义的索引来提高性能。 在编写SQL语句时我们应清楚优化器根据何种原则来删除索引,这有助于写出高性能SQL语句。    下面就某些SQL语句的where子句编写中需要注意的问题作详细介绍。 下面是SQL查询脚本:  3. 带通配符(%)的like语句    同样以上面的例子来看这种情况。目前的需求是这样的,要求在职工表中查询名字中包含cliton的人。 仔细检查order by语句以找出非索引项或者表达式,它们会降低性能

    3.1K20编辑于 2021-12-27
  • 来自专栏Python数据科学

    SQL 性能优化梳理

    第一层:客户端通过连接服务,将要执行的sql指令传输过来 第二层:服务器解析并优化sql,生成最终的执行计划并执行 第三层:存储引擎,负责数据的储存和提取 1.2 锁 数据库通过锁机制来解决并发场景-共享锁 被用来设计处理大量短期事务,具有高性能和自动崩溃恢复的特性。 MyISAM引擎,不支持事务和行级锁,崩溃后无法安全恢复。 3 查询时优化 3.1 查询质量的三个重要指标 响应时间 (服务时间,排队时间) 扫描的行 返回的行 3.2 查询优化点 避免查询无关的列,如使用Select * 返回所有的列。 3.补充2个5.7版本的新特性: generated column,就是数据库中这一列由其他列计算而得 CREATE TABLE triangle (sidea DOUBLE, sideb DOUBLE name2": "value2"}'); SELECT * FROM json_test WHERE JSON_CONTAINS(name, '$.name1'); 来自JVM专家-达 关注explain在性能分析中的使用

    1K20发布于 2019-11-21
  • 来自专栏电光石火

    SQL 性能调优

    我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习、摘录、并汇总部分资料与大家分享! 如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. 两者的区别在于, 前者DBMS将直接跳到第一个DEPT等于4的记录而后者将首先定位到DEPTNO=3的记录并且向前扫描到第一个DEPT大于3的记录 性能上的差异,关键看你的from和where子句。比如说如果你的where条件中可以通过索引,那显然 select 1 from ... 的性能比 select * from ... 好。 仔细检查order by语句以找出非索引项或者表达式,它们会降低性能

    3.7K60发布于 2018-01-18
  • 来自专栏.NET企业级解决方案应用与咨询

    SQL 性能优化 总结

    SQL 性能优化 总结 (1)选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 如果有 3 个以上的表连接查询, 那就需要选择交叉表 (intersection table)作为基础表,交叉表是指那个被其他表所引用的表。 (10)尽量多使用COMMIT: 只要有可能,在程序中尽量多使用 COMMIT, 这样程序的性能得到提高,需求也会因为 COMMIT所释放的资源而减少: COMMIT所释放的资源: , 前者 DBMS 将直接跳到第一个 DEPT等于 4 的记录而后者将首先定位到 DEPTNO=3 的记录并且向前扫描到第一个DEPT大于3的记录。 就象其他函数那样,停用了索引. (3)‘+' 是数学函数.就象其他数学函数那样,停用了索引. (4)相同的索引列不能互相比较,这将会启用全表扫描。

    2.5K20发布于 2019-09-17
  • 来自专栏程序员的成长之路

    SQL 性能优化梳理

    第一层:客户端通过连接服务,将要执行的sql指令传输过来 第二层:服务器解析并优化sql,生成最终的执行计划并执行 第三层:存储引擎,负责数据的储存和提取 1.2 锁 数据库通过锁机制来解决并发场景-共享锁 被用来设计处理大量短期事务,具有高性能和自动崩溃恢复的特性。 MyISAM引擎,不支持事务和行级锁,崩溃后无法安全恢复。 3 查询时优化 3.1 查询质量的三个重要指标 响应时间 (服务时间,排队时间) 扫描的行 返回的行 3.2 查询优化点 避免查询无关的列,如使用Select * 返回所有的列。 3.补充2个5.7版本的新特性: generated column,就是数据库中这一列由其他列计算而得 CREATE TABLE triangle (sidea DOUBLE, sideb DOUBLE name2": "value2"}'); SELECT * FROM json_test WHERE JSON_CONTAINS(name, '$.name1'); 来自JVM专家-达 关注explain在性能分析中的使用

    86920发布于 2019-11-23
  • 来自专栏猿人谷

    Oracle SQL性能优化

    如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表.       减少访问数据库的次数: ORACLE在内部执行了许多工作: 解析SQL语句, 估算索引的利用率, 绑定变量 , 读数据块等; (5)      在SQL*Plus , SQL*Forms (译者按: TRUNCATE只在删除全表适用,TRUNCATE是DDL不是DML) (10) 尽量多使用COMMIT: 只要有可能,在程序中尽量多使用COMMIT, 这样程序的性能得到提高,需求也会因为 两者的区别在于, 前者DBMS将直接跳到第一个DEPT等于4的记录而后者将首先定位到DEPTNO=3的记录并且向前扫描到第一个DEPT大于3的记录 就象其他函数那样, 停用了索引. (3) ‘+'是数学函数. 就象其他数学函数那样, 停用了索引. (4)相同的索引列不能互相比较,这将会启用全表扫描. (32) a.

    3.6K70发布于 2018-01-17
  • 来自专栏架构驿站

    性能优化】MySQL之SQL剖析(SQL profile)

    分析SQL执行带来的开销是优化SQL的重要手段。在MySQL数据库中,可以通过配置profiling参数来启用SQL剖析。该参数可以在全局和session级别来设置。 该参数开启后,后续执行的SQL语句都将记录其资源开销,诸如IO,上下文切换,CPU,Memory等等。根据这些开销进一步分析当前SQL瓶颈从而进行优化与调整。 ------------------------------------------------------------------------------------------------+ 3、 variables like '%profil%' | | 2 | 0.00138150 | select count(*) from customer | | 3 表 --如下面的查询,部分信息省略 profiling root@localhost[information_schema]> select * from profiling limit 3,3

    83740编辑于 2022-03-25
  • 来自专栏全栈程序员必看

    Mysql性能优化一:SQL语句性能优化

    18,一些SQL查询语句应加上nolock,读、写是会相互阻塞的,为了提高并发性能,对于一些查询,可以加上nolock,这样读的时候可以允许写,但缺点是可能读到未提交的脏数据。 使用 nolock有3条原则。查询的结果用于“插、删、改”的不能加nolock !查询的表属于频繁发生页分裂的,慎用nolock ! 24,当服务器的内存够多时,配制线程数量 = 最大连接数+5,这样能发挥最大的效率;否则使用 配制线程数量<最大连接数启用SQL SERVER的线程池来解决,如果还是数量 = 最大连接数+5,严重的损害服务器的性能 47,EXPLAIN SELECT 查询用来跟踪查看效果  使用 EXPLAIN 关键字可以让你知道MySQL是如何处理你的SQL语句的。这可以帮你分析你的查询语句或是表结构的性能瓶颈。 可以在执行sql前调用begin,多条sql形成一个事物(即使autocommit打开也可以),将大大提高性能

    2.5K21发布于 2021-11-10
  • 来自专栏python3

    sql3

    SCOTT>select ename,sal   2  from emp e,   3  (select deptno,avg(sal) avg_sal from emp group by deptno 2450 MARTIN         1250 SCOTT>select * from (select * from emp order by sal desc) where rownum<=3; from   2  (select row_number() over(partition by deptno order by sal desc) no,ename,sal,deptno   3 

    48310发布于 2020-01-09
  • 来自专栏hml_知识记录

    SQL性能优化简介

    SQL性能优化简介InterSystems SQL支持几个特性来优化InterSystems IRIS®数据平台的SQL性能。表定义优化SQL性能从根本上取决于良好的数据架构。 查询优化在几乎所有情况下,用嵌入式SQL编写的查询的执行速度都比用动态SQL编写的查询快。还要注意,由于存在缓存查询,对于嵌入式SQL和动态SQL,重新执行查询的速度都比初始执行快得多。 这些查询优化使用现有的表定义和表数据优化:运行时统计:用于衡量系统上查询执行的性能。显示计划显示查询的执行计划。缓存查询和文字替换:维护最近动态查询的缓存,允许重新执行查询,而不会重复准备查询的开销。 SQL语句和冻结计划允许保留查询执行计划,从而允许在不降低现有查询性能的情况下更改表。索引配置和使用:用于指定如何使用现有索引。 分片环境中的最佳性能通常是通过组合使用分片表(通常非常大的表)和非分片表来实现的快速命令InterSystems SQL支持快速选择、快速插入和快速截断表。

    96120编辑于 2022-06-07
  • 来自专栏前端记录笔记

    Oracle sql 性能优化(一)

    这是我参与「掘金日新计划 · 8 月更文挑战」的第16天,点击查看活动详情 >> 性能优化 2.1【推荐】尽量减少数据库负担 说明: 当执行每条 SQL 语句时, ORACLE 在内部执行了许多工作 :解析 SQL 语句、估算索引 的利用率、绑定变量、读数据块等。 减少访问数据库的次数,就能实际上减少 ORACLE 的工作量 \ 2.2【推荐】避免大表关联,大表关联可能存在性能问题 \ 2.4【强制】禁止使用“SELECT *”这样的语句,特别是在程序代码内部 说明 SQL 应尽量简化,查询类语句只查询 业务所需的数据,不查询无关数据表。 特别需要关注数据量巨大的表关联操作,使用不当会引发系统故障。 排序操作 说明: 大量的排序操作影响系统性能,如必须使用排序操作,尽量建立在有索引的列上。

    1.2K30编辑于 2022-11-02
  • 来自专栏前端记录笔记

    Oracle sql 性能优化(三)

    这是我参与「掘金日新计划 · 8 月更文挑战」的第16天,点击查看活动详情 >> 性能优化 2.19 【推荐】查询分页场景,建议如下分页格式,先查询过滤出一部分数据,再做下一层过滤查询 举例: Demo \ 2.21【参考】并行度使用需谨慎 说明: 并行技术的使用需要考虑 CPU 核数,系统负载等情况,并行执行的 SQL 会对其它语 句的性能产生影响,一般常用在报表分析任务和 OLAP 系统中。 建议修改成外连接方式,这样可以走 HASH JOIN,避免 FILTER,提升性能。 ,需要进行执行计划分析 说明: SQL语句的执行效率对于系统非常重要,一个效率很低的SQL会降低系统吞吐 量,严重时可导致系统宕机。 所以,对于SQL语句的执行计划分析显得相当重要,下图是使 用PL/SQL Developer分析SQL执行计划的示例。这里仅给出示例,不给出具体如何分析的方 法,相关技能请自学或参加培训。

    80970编辑于 2022-11-02
  • 来自专栏数据库与编程

    SQL性能监控和优化

    8月27日,济南技术沙龙,来自新炬的孙其成为大家带来的主题是SQL性能监控和优化,他从性能监控、执行计划、选择率、优化方法论、优化案例等几个方面展开讲解。 以多年的性能优化经验向给大家分享了如何做调优等。

    32110编辑于 2022-04-24
领券