随笔分类 -  SQL优化

摘要:收到数据库服务器cpu告警,当时在吃饭,来不及登录查看。(数据库80%的问题都是SQL引起的) 后续通过会话快照信息进行分析。 select sample_time,sql_id,count(*) from dba_hist_active_sess_historywhere sample_time> 阅读全文
posted @ 2024-09-05 15:56 阿西吧li 阅读(30) 评论(0) 推荐(0) 编辑
摘要:SQL如下(MYSQL版本为8.0.17): select lastname from (select id,loginid,workcode,lastname from HrmResource union all select id,loginid,'' as workcode,lastname 阅读全文
posted @ 2023-06-07 16:19 阿西吧li 阅读(140) 评论(0) 推荐(0) 编辑
摘要:数据库版本为:11.2.0.4 当cursor_sharing为SIMILAR或者FORCE时候,将会导致函数索引失效; 表doc_order_header列有LASTSHIPMENTTIME得函数索引; 当时通过v$session视图发现,过滤条件to_char(h.lastshipmenttim 阅读全文
posted @ 2021-12-03 13:30 阿西吧li 阅读(152) 评论(0) 推荐(0) 编辑
摘要:执行5分钟还没执行完; explain update ind_shop t1 join (select shop_id,(case when `value`='男装' then 1 when `value`='女装' then 2 when `value`='男女装' then 3 else 0 e 阅读全文
posted @ 2021-10-14 13:36 阿西吧li 阅读(566) 评论(0) 推荐(0) 编辑
摘要:很简单的sql: select * from (select * from issue.db_infoorder by creator_date) where rownum<10 执行计划如下: 此查询需要12秒左右。 创建索引 create index idx_time on db_info(cr 阅读全文
posted @ 2021-07-04 20:06 阿西吧li 阅读(346) 评论(0) 推荐(0) 编辑
摘要:表结构如下: create table a_tran(id number,region varchar2(50),tran_date varchar2(50) )partition by list (region)(partition p_1 values (1),partition p_2 val 阅读全文
posted @ 2020-12-02 15:54 阿西吧li 阅读(192) 评论(0) 推荐(0) 编辑
摘要:--im_cons_integral表为分区表按照org_no(单位编码)分区 有效期历史数据处理 begin for cur in (select * from sgpm.o_org where org_type in ('04','05', '06')) loop insert into a_t 阅读全文
posted @ 2020-07-29 11:01 阿西吧li 阅读(310) 评论(0) 推荐(0) 编辑
摘要:explain plan for select '33101' org_no, nvl(count(*), 0) outNum from CPSS.k_id_staff_tqjl_v a where a.pda_status_code = '002' and a.gds_no in (SELECT 阅读全文
posted @ 2020-07-24 11:01 阿西吧li 阅读(346) 评论(0) 推荐(0) 编辑
摘要:SQL Monitoring Report SQL Text SELECT TACTIC_DET_ID, CALC_ID, ORG_NO, CONS_ID, CONS_NO, ESTI_PQ, ESTI_AMT, YM, YMD, COLL_TIME, ESTI_DATE, ACT_AMT, BAS 阅读全文
posted @ 2020-07-06 16:31 阿西吧li 阅读(361) 评论(0) 推荐(0) 编辑
摘要:create table sales ( year number, sales number ); insert into sales values (2020,1000); insert into sales values (2021,2000); insert into sales values 阅读全文
posted @ 2020-07-02 09:50 阿西吧li 阅读(144) 评论(0) 推荐(0) 编辑
摘要:SELECT COUNT(1) cnt FROM( SELECT MAX(TT.ORG_NO) 服务区域, MAX(TT.MR_SECT_NO) , MAX(CBDMC) , MAX(CBYDM) , MAX(CBYXM) , TT.CONS_NO , MAX(HM) , MAX(DZ) , MAX 阅读全文
posted @ 2020-07-01 16:42 阿西吧li 阅读(333) 评论(0) 推荐(0) 编辑
摘要:查询语句大量阻塞,event为latch:buffer cache chain(该语句属于热链)。 查询结果跑不出来。 explain plan for SELECT K.IDX_CODE, NVL(AA.COUNT, 0) VALUE FROM K_AMR_CONFIG K LEFT JOIN ( 阅读全文
posted @ 2020-06-16 16:12 阿西吧li 阅读(347) 评论(0) 推荐(0) 编辑
摘要:业务反应某个模块加载很慢(需要一分钟左右),以前是正常的。 配合业务部门,跟踪他们业务上的会话,数据库gv$session定位到慢sql,sql_child_number为2。 获取执行计划 selet * from table(dbms_xplan.display_cursor('xxx',2)) 阅读全文
posted @ 2020-06-12 08:52 阿西吧li 阅读(493) 评论(0) 推荐(0) 编辑
摘要:SQL Monitoring Report SQL Text INSERT INTO FS_PAY_DET_INFO (PAY_DET_ID, PAY_INFO_ID, GC_TYPE_CODE, GRA_PQ, PAY_GRA_AMT, PUR_PQ, PAY_PUR_AMT) SELECT PK 阅读全文
posted @ 2020-06-05 10:35 阿西吧li 阅读(281) 评论(0) 推荐(0) 编辑
摘要:业务反应慢sql,sql_id为6dvj1fy4n5f6a。通过v$sql_monitor视图查看慢sql的详细信息。信息如下: SQL Monitoring Report SQL Text SELECT MAX(rebuild_id) rebuild_id FROM (SELECT rebuild 阅读全文
posted @ 2020-06-04 09:10 阿西吧li 阅读(1112) 评论(0) 推荐(0) 编辑
摘要:sql执行频繁,单次执行时间存在性能问题。sql如下:select t.cons_no, t.cons_name, t.elec_addr, t.contract_cap t_contract_cap, (select b.tg_id from s_mp_scheme b where exists 阅读全文
posted @ 2020-06-03 09:24 阿西吧li 阅读(691) 评论(0) 推荐(0) 编辑
摘要:业务反应某sql执行慢,影响部分业务。通过v$session视图获取会话当前的sql_id,在通过v$sql_bind_capture或dba_hist_sqlbind等视图获取该sql绑定变量的值。 设置会话级别参数(执行计划详细信息):ALTER SESSION SET statistics_l 阅读全文
posted @ 2020-06-01 12:12 阿西吧li 阅读(800) 评论(0) 推荐(0) 编辑
摘要:目前oracle支持得表关联方式为三种: 循环嵌套连接(mysql也支持) hash连接 (mysql8.0以后支持) 排序合并连接 循环嵌套连接 适合小表驱动大表,驱动表结果集不能太多 被驱动表与驱动表得关联字段,字段选择性较好(适合的扫描方式:索引唯一扫描和索引范围扫描) 关联后返回少量的结果集 阅读全文
posted @ 2020-05-12 15:26 阿西吧li 阅读(590) 评论(0) 推荐(0) 编辑
摘要:--表信息-- select owner, table_name, tablespace_name, num_rows,/*表数据量*/ temporary,/*是否是临时表*/ degree,/*并行度*/ blocks,/*快的数量*/ empty_blocks,/*空块的数量*/ last_a 阅读全文
posted @ 2020-01-22 09:39 阿西吧li 阅读(203) 评论(0) 推荐(0) 编辑
摘要:1、分批UPDATEDROP TABLE T2;CREATE TABLE T2 AS SELECT OBJECT_NAME FROM DBA_OBJECTS;SELECT * FROM T2;SELECT COUNT(*) FROM T2;DECLARE TYPE RIDARRAY IS TABLE 阅读全文
posted @ 2019-11-19 09:57 阿西吧li 阅读(710) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示