自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

余璜的技术博客

好玩就好

  • 博客(10)
  • 资源 (3)
  • 收藏
  • 关注

原创 代价

想获得任何东西,都需要付出代价。问题在于代价的大、或小。在你真正行动之前,并不能确定。分布式系统做资源管理,是个麻烦事。两种策略:分布式管理、集中管理。分布式管理性能好,没有单点压力,但是实现困难,问题多,可能精读低;集中管理性能差,有单点压力,但是实现相对简单,并且精确度高。那么,我们应该选择哪种策略呢?集中管理,性能有多差?压力有多大?说不定并没有想象的大呢?为了精读,你愿意付出多大代价?在真正试一试之前,心里真是没有底。这就是代价有意思的地方,在你真正去做之前,一切都是停留在纸面的推演,水

2020-07-30 21:48:44 181

原创 【SQL 优化器技术系列】 连接顺序(Join Order)

Oracle 2005 年出了一个 30 多页的小册子,《Query Optimization in Oracle Database10g Release 2》,介绍了常见的优化器技术。我是做 SQL 执行的,优化部分只了解皮毛,从没有系统学习过。本系列逐个学习和介绍,自我提升,也帮助他人。这一节聊连接顺序。我们不会讲怎么去决策连接顺序,会讲做好连接顺序的决策有多难:N 表 join 时,表的连接顺序有 N! 种组合,N=5时,N!= 120每种 join 可以选择多种连接算法,如 NLJ.

2020-07-16 01:11:53 1417

原创 【SQL 优化器技术系列】 Or Expansion

Oracle 2005 年出了一个 30 多页的小册子,《Query Optimization in Oracle Database10g Release 2》,介绍了常见的优化器技术。我是做 SQL 执行的,优化部分只了解皮毛,从没有系统学习过。本系列逐个学习和介绍,自我提升,也帮助他人。简单来说,OR Expansion 就是把 OR 拆成 UNION ALL,来打开优化空间。举个例子:select * from t1, t2 where t1.pkey > 10 or t2.pk.

2020-07-16 00:52:04 380

原创 【SQL 优化器技术系列】 外连接消除

Oracle 2005 年出了一个 30 多页的小册子,《Query Optimization in Oracle Database10g Release 2》,介绍了常见的优化器技术。我是做 SQL 执行的,优化部分只了解皮毛,从没有系统学习过。本系列逐个学习和介绍,自我提升,也帮助他人。外连接消除就是将一个 outer join 转换成 inner join。例如下面的查询适合做外连接消除:select * from a left join b on a.pk = b.pk where .

2020-07-14 18:00:49 395

原创 【SQL 优化器技术系列】谓词下推和上拉

Oracle 2005 年出了一个 30 多页的小册子,《Query Optimization in Oracle Database10g Release 2》,介绍了常见的优化器技术。我是做 SQL 执行的,优化部分只了解皮毛,从没有系统学习过。本系列逐个学习和介绍,自我提升,也帮助他人。一个复杂 query 里可能包含多个视图和子查询(下称语句块),在它们的内部和外面还有很多谓词。谓词下推是指将外面的谓词条件下推到语句块内部,降低结果集大小、扩大优化空间;谓词上拉是指把谓词从一个语句块.

2020-07-14 17:57:13 3302

原创 【SQL 优化器技术系列】 公共子表达式消除

Oracle 2005 年出了一个 30 多页的小册子,《Query Optimization in Oracle Database10g Release 2》,介绍了常见的优化器技术。我是做 SQL 执行的,优化部分只了解皮毛,从没有系统学习过。本系列逐个学习和介绍,自我提升,也帮助他人。这个技术原理也很简单,初中就学习过:(a * b) + (a * c) = a * (b + c)在这个式子里,如果 a 是一个常量,那么这个变换没什么意义,但是考虑如果 a 是一个函数,改写成:(f.

2020-07-14 17:37:15 669

原创 【SQL 优化器技术系列】谓词推导

Oracle 2005 年出了一个 30 多页的小册子,《Query Optimization in Oracle Database10g Release 2》,介绍了常见的优化器技术。我是做 SQL 执行的,优化部分只了解皮毛,从没有系统学习过。本系列逐个学习和介绍,自我提升,也帮助他人。谓词推导(Transitive predicate generation)听上去高大上,实际并不复杂。所谓谓词,简单理解成 一个个的 WHERE 条件好了。从WHERE A.C1 = B.C1 AND A.

2020-07-14 17:23:50 379

原创 【SQL 优化器技术系列】 Subquery “flattening”

Oracle 2005 年出了一个 30 多页的小册子,《Query Optimization in Oracle Database10g Release 2》,介绍了常见的优化器技术。我是做 SQL 执行的,优化部分只了解皮毛,从没有系统学习过。本系列逐个学习和介绍,自我提升,也帮助他人。子查询是很费的操作,特别是关联子查询,外面每得到一行结果,就要去重新执行一遍子查询里的 SQL。最常见的优化手段是将子查询展开,改写成 join,semi-join,anti-join 的形式。子查询常见的.

2020-07-14 16:32:32 233

原创 【SQL 优化器技术系列】简单 view merging

Oracle 2005 年出了一个 30 多页的小册子,《Query Optimization in Oracle Database10g Release 2》,介绍了常见的优化器技术。我是做 SQL 执行的,优化部分只了解皮毛,从没有系统学习过。本系列逐个学习和介绍,自我提升,也帮助他人。第一篇,改写最简单的改写是 view merging。create view MY_VIEW as SELECT * FROM factory WHERE CITY = 'Wuhan';select *.

2020-07-14 15:01:48 266

原创 外连接消除技术应用

上回介绍了外连接消除技术。今天更进一步来聊聊这个话题。select * from a right join b on a.m1 = b.m1 left join c on c.c1 = b.c1where c.c1 in (1,2,3);基于外连接消除技术,这个语句 left join 可以改写成 inner join:select * from a right join b on a.m1 = b.m1 inner join c on c.c1 = b.c1wh

2020-07-10 18:55:20 198

同义词词林(扩展版)

《同义词词林(扩展版)》每个词的类编码就应该包含了他全部的信息。 对于原版同义词词林,编码的第一个字母代表该词所属的大类,第二个字母代表中类,后两位字母代表小类。 同义词词林原版是梅家驹先生人工构造的,同义的原则应该是他老人家对这些词的理解吧。同义的原则没有明确的说明,这也是目前一个研究方向--复述(paraphrasing)--关心的一个问题。

2010-05-18

FASS简介-抗锯齿原理

FSAA 是 full scene anti-alias 的缩写,有些人将其译为全景反锯齿,还算是合理。不过,倒底 FSAA 是什么呢?为什么要「全景」(full scene)?「半景」不行吗?(其实相对于 FSAA 的是 edge AA,「边缘反锯齿」)反锯齿(anti-alias)又是怎么回事呢?

2009-01-18

排队论---我收集的

排队论---我收集的 排队论---我收集的 排队论---我收集的

2008-09-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除