![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Performance Tuning
AskTOMmorow
不会理财的DBA不是一个好哲学家
展开
-
【sql改写】exists any all
/*--创建测试表create table TT( ta VARCHAR2(10), tb VARCHAR2(10) );create table TT1( ta VARCHAR2(10), tb VARCHAR2(10) );insert into TT (ta, tb)values ('1', '11');insert into TT (ta, tb)values ('2',原创 2016-08-30 11:21:14 · 356 阅读 · 0 评论 -
CROSS APPLY--windows function 改写
--客户最新的三个订单(1:N关系)select * from sales.orders where custid =85 order by orderdate desc;--select * from Sales.Customers where custid=85;--CROSS ALPPLYSELECT C.custid, d.* FROM Sales.Customers AS C原创 2017-04-24 19:08:04 · 206 阅读 · 0 评论 -
【Sqlserver】堵塞问题解决思路
背景: App userA:主要负责数据入库(线程较少) ; userB:负责数据查询和校验(线程较多,多为个人连接数据库查询)。 userA和userB之间经常会存在锁导致堵塞,从公司层面看,userA的是主体核心业务,userB是从业务。最好的改进方式是全任务的计划执行,在App改进之前,先用如下定时任务临时缓解问题。 - 操作:kill user=userB,而且堵塞原创 2017-05-05 20:13:22 · 491 阅读 · 0 评论 -
【Mysql】【子查询-left join改写】前端SQL调优
相关数据已经脱敏处理-- 原SQLSELECT * FROM (SELECT a.*, (SELECT sum(CASE WHEN (b.confidence < c.THRESHOLD * d.THRESHOLD AND b.KEY_N原创 2017-05-05 20:01:56 · 373 阅读 · 0 评论 -
sqlserver UNION-OR 改写一例
------原SQL info:select name=name,xtype=0,rowcnt=-1 from sysobjects with (nolock) where status>=0 and objectproperty(id,'ISUSERTABLE')=1unionselect name,1,-1 from sysobjects with (nolock) where statu原创 2017-05-05 11:28:50 · 594 阅读 · 0 评论 -
【SQL 改写】not exists-left join (distinct) where is null改写
数据已经过脱敏处理--原SQL 30min出不来结果select a.*from TeableA awhere is_open = '1' and ecd = 'xshg' and not exists(select * from bvaluation b where a.calendar_date = b.tdate) and a.calendar_date >=原创 2017-04-13 21:06:27 · 436 阅读 · 0 评论 -
【sqlServer】唯一约束字段过长的问题及后续库表设计的反思
最近维护库表的时候经常遇到字段长度超出唯一约束字段最大长度的报错,例如: Warning! The maximum key length is 900 bytes. The index ‘testa$BPK_AK_Key’ has maximum length of 8003 bytes. For some combination of large values, the insert/upd原创 2017-01-09 17:27:56 · 850 阅读 · 0 评论 -
【Mysql】sqlserver 开窗函数lead over>> mysql 等价转换
相关敏感表信息已经脱敏处理1.待转换 sqlserver SQLselecta.party_id,a.publish_date,a.rating_date,replace(replace(replace(rating,'p',''),' ',''),'i','') rating2,lead(replace(replace(replace(rating,'p',''),' ',''),'i原创 2016-12-19 20:20:32 · 1449 阅读 · 0 评论 -
【Mysql】分组取得最新值的相关SQL改写
最近项目上遇到个效率很差的SQL,通过沟通和整理,发现SQL中存在大量下面这种SQL的子查询:(#获取**最新数据select security_id, trade_date, reliability, modified_duration, net_px, ytm, YEAR_TO_MAT from (sele原创 2016-12-14 16:44:36 · 237 阅读 · 0 评论 -
【Mysql】复杂SQL调优一例
*相关表已经脱敏处理1.原SQLSELECT tmp.PARTY_ID, s.TICKER_SYMBOL, tmp.SHAREHOLDER_NAME, tmp.END_DATE_NEW, tmp.SHARE_NUM_NEW, tmp.END_DATE_LAST, tmp.SHARE_NUM_LAST,原创 2016-12-14 19:57:28 · 416 阅读 · 0 评论 -
【sqlserver】一个CTE递归调用案例优化
/*** 相关数据已脱敏 ***/--set statistics io on--set statistics time on --待优化高耗时SQLwith cte as (select t.sid, t.end_date, t.nav, t.d_value, t.s_value, t.factor,原创 2016-10-21 18:26:31 · 696 阅读 · 0 评论 -
执行计划、索引 是否会影响SQL的执行结果
以前一自认为数据库的执行计划、索引属于数据库调优的范畴,最多只影响数据库的执行结果,但是接触的案例多了,理解执行计划深入了之后发现,有的时候执行计划会影响数据库的执行结果,甚至能使原来正确运行的SQL报错,无法正常产生结果集。下面分享下笔者在日常工作中遇到的两个案例: 注:案例在原库能重现,此处没有提供可以重现的DEMO,只做参考之用,相关表和字段已做脱敏处理。案例一:DB:oracle 10原创 2016-09-01 18:12:21 · 685 阅读 · 0 评论 -
【MYSQL】Mysql长时间SQL优化一例(force index)
SELECT SUBSTR(eff_time,1,10),ns_name,COUNT(*) FROM HEHEDA WHERE isActive = 1 AND stype <> 'report' AND usefull = 1 AND eff_time > '2014-01-01' AND itype =1 AND ns_name IN ('凤凰网', '新浪财经', '和讯网', '金融界'原创 2017-07-10 20:07:09 · 347 阅读 · 0 评论