
优化
朝闻道-夕死可矣
朝闻道,夕死可矣!
展开
-
MS Sqlserver执行计划理解-转
要站在巨人的肩上,哈!要理解执行计划,怎么也得先理解,那各种各样的名词吧。鉴于自己还不是很了解。本文打算作为只写懂的,不懂的懂了才写。 在开头要先说明,第一次看执行计划要注意,SQL Server的执行计划是从右向左看的。 名词解析: 扫描:逐行遍历数据。 先建立一张表,并给大家看看大概是什么样子的。 CREATE TABLE Person( I...转载 2020-04-03 09:28:56 · 239 阅读 · 0 评论 -
Oracle内存全面分析(转)
Oracle的内存配置与oracle性能息息相关。而且关于内存的错误(如4030、4031错误)都是十分令人头疼的问题。可以说,关于内存的配置,是最影响Oracle性能的配置。内存还直接影响到其他两个重要资源的消耗:CPU和IO。首先,看看Oracle内存存储的主要内容是什么:程序代码(PLSQL、Java); 关于已经连接的会话的信息,包括当前所有活动和非活动会话; 程序运行时必须的...转载 2020-03-25 13:15:05 · 851 阅读 · 0 评论 -
数据库多表连接方式介绍HASH-JOIN
1.概述 hash join是一种数据库在进行多表连接时的处理算法,对于多表连接还有两种比较常用的方式:sort merge-join 和 nested loop。 为了比较清楚的介绍hash join的使用场景以及为何要引入这样一种连接算法,这里也会顺带简单介绍一下上面提到的两种join方式。 连接方式是一个什么样的概念,或者说我们为何要有而且有好几种,对于不太了解数据库的人来讲可能...转载 2018-11-13 14:04:19 · 1111 阅读 · 0 评论 -
MySQL数据库负载很高的解决办法
一、应急解决办法在MySQL数据库连接数很多,而且大多属于活跃的状态时MySQL机器基本上负载很高,属于基本上快要死去的状态了. 这时怎么办呢?有可能两个办法.第一: 先限制Innodb的并发处理.如果innodb_thread_concurrency = 0 可以先改成 16或是64 看机器压力,如果 非常大,先改成16让机器的压力下来,然后慢慢增达,适应自已的业务. 处理方法:...转载 2018-11-01 11:30:50 · 3898 阅读 · 0 评论 -
MySQL实时统计脚本--计算QPS,TPS和线程连接数等
MySQL系统本身提很多状态信息,很多时候我们只关心其中一部分数据信息,如TPS、QPS、连接数等#!/bin/bashmysqladmin -uroot -p'123123' extended-status -i1|awk 'BEGIN{local_switch=0;print "QPS Commit Rollback TPS Threads_con Threads_run...转载 2018-09-04 14:19:24 · 739 阅读 · 0 评论 -
oracle ASH
http://docs.oracle.com/cd/E11882_01/server.112/e41573/autostat.htm#PFGRF027记录最近时间的等待时间,初步调优语句SELECT ash.session_id, ash.session_serial#, ash.user_id, ash.program,原创 2015-12-21 14:12:39 · 452 阅读 · 0 评论 -
DBMS_XPLAN.DISPLAY_CURSOR&DISPLAY
DBMS_XPLAN是Oracle提供的一个用于查看SQL计划,包括执行计划和解释计划的包,很不错的一个功能不仅如此,它还可以用来输出存储在AWR,SQL调试集,缓存的SQL游标,以及SQL基线中的语句计划比如:DISPLAY,DISPLAY_CURSOR,DISPLAY_AWR,DISPLAY_PLAN,DISPLAY_SQL_PLAN_BASELINE,DISPLAY_SQLSET这里原创 2016-06-15 16:10:32 · 1135 阅读 · 0 评论 -
oracle执行计划小结
执行计划小结,真是琳琅满目啊! 1,SET AUTOT[RACE] {ON| OFF | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS] 参考另一文档:http://blog.youkuaiyun.com/jc_benben/article/details/17270105 SQL>set autotrace on expSQL> select原创 2016-06-16 11:27:01 · 797 阅读 · 0 评论 -
oracle 虚拟索引和不可见索引
1,虚拟索引-(Virtual index)虚拟索引,顾名思义是不创建实际的段,目的在于,不耗时,耗CPU,耗IO,大量存储空间情况下创建索引,观察判断对SQL的优化效果SQL> drop table t1;Table dropped.SQL> create table t1 as select * from dba_objects;Table created.SQL> e原创 2017-12-17 14:05:54 · 543 阅读 · 1 评论 -
SQL优化经验总结34条
转自:http://blog.itpub.net/219982/viewspace-715766/我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习、摘录、并汇总部分资料与大家分享! 我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习、摘录、并汇总部分资料与大家分享! (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效转载 2017-11-10 09:33:58 · 501 阅读 · 0 评论 -
mysql监控工具innotop
Innotop是一款十分强大的MySQL监控工具,用perl所写,通过文本模式展示MysQL服务器和Innodb的运行状况具体特性 :事务列表可以显示Inoodb当前的全部事务查询列表可以显示当前正在运行的查询可以显示当前锁和锁等待的列表以相对值显示服务器状态和变量的汇总信息有多种模式可用来显示Innodb内部信息(缓冲区、死锁、外键错误、I/O活动、行操作、信号量)复制监控,将主...原创 2017-04-24 16:00:12 · 1173 阅读 · 0 评论 -
mysql sync_binlog 和innodb_flush_log_at_trx_commit
一,innodb_flush_log_at_trx_commit 默认值1 0 事务提交不做操作,每秒钟把日志缓存(innodb_log_buffer_size控制)write os cache并flush到日志文件, 1 每次提交都将日志缓存write os cache并flush到日志文件,该操作不丢失已经提交的事务,除非磁盘或者操作系统是‘伪’刷新,这也有另外参数确定sync_binlog,...原创 2017-03-17 09:23:49 · 517 阅读 · 0 评论 -
10046事件
10046事件1,10046是SQL_TRACE的扩展,分为如下级别0级:SQL_TRACE=FASLE1级:SQL_TRACE=TRUE,这是缺省级别4级:1级+绑定变量8级:4级+等待事件12级:4级+8级,2,跟踪会话2.1 第一种方法SYS@orcl> alter session set max_dump_file_size=unlimited;Se原创 2017-04-01 14:52:00 · 340 阅读 · 0 评论 -
命令TKPROF
Tkprof工具可用来格式化sql trace产生的文件,让你更容易看懂trace的内容用法: tkprof tracefile outputfile [explain= ] [table= ] [print= ] [insert= ] [sys= ] [sort= ] ...参数说明: tracefile:你要分析的trace文件outpu转载 2013-08-29 16:25:33 · 1027 阅读 · 0 评论 -
忘记commit造成select查询的性能问题
今天遇到一个很有意思的问题,一个开发人员反馈在测试服务器ORACLE数据库执行的一条简单SQL语句非常缓慢,他写的一个SQL没有返回任何数据,但是耗费了几分钟的时间。让我检查分析一下原因,分析解决过后,发现事情的真相有点让人哭笑不得,但是也是非常有意思的。我们先简单构造一下类似的案例,当然只是简单模拟。 假设一个同事A,创建了一个表并初始化了数据(实际环境数据量较大,有1G多的数据)转载 2017-03-29 16:38:17 · 561 阅读 · 0 评论 -
sysbench 简单使用
一、sysbench压力测试工具简介:sysbench是一个开源的、模块化的、跨平台的多线程性能测试工具,可以用来进行CPU、内存、磁盘I/O、线程、数据库的性能测试。目前支持的数据库有MySQL、Oracle和PostgreSQL。以下操作都将以支持MySQL数据库为例进行。1. sysbench工具安装:默认支持MySQL,如果需要测试Oracle/Postg原创 2016-12-19 14:22:23 · 6144 阅读 · 0 评论 -
批量更新大表
批量表更新,一下是几种,如果小表几万行左右直接sql即可一,create/rename tableSQL> drop table t_update_test;表已删除。SQL> create table t_update_test as select * from dba_objects where 1=0;表已创建。SQL> set timing on;SQL> inse原创 2016-05-24 09:59:55 · 1070 阅读 · 0 评论 -
优化SQL查询:如何写出高性能SQL语句
1、 首先要搞明白什么叫执行计划?执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1条记录,那查询优化器会选择“索引查找”方式,如果该表进行了归档,当前只剩下5000条记录了,那查询优化器就会改变方案,采用 “全表扫描”方式。可见,执行计划并不是固定的,它是“个性化的”。产生一个转载 2013-12-05 22:12:07 · 501 阅读 · 0 评论 -
oracle的执行计划
今天在一台机器中想分析下执行计划,但是在sqlplus中输入set autotrace on 报cannot set autotrace 错误解决方法如下:首先必须采用用Oracle的sqlplus登陆sys账号sqlplus " sys/vion@XXX as sysdba "然后执行如下脚本:@$ORACLE_HOME\sqlplus\admin\plustrce.sql原创 2013-12-11 21:31:06 · 571 阅读 · 0 评论