当前位置: 首页 > news >正文

外网有哪些有趣的网站哪些网站可以发广告

外网有哪些有趣的网站,哪些网站可以发广告,b2b2c o2o商城系统,苏州网站建设网络LightDB - oracle_fdw 过滤条件下推增强【24.1】 1. 字符串比较下推1.1 示例 2. 隐式转换下推2.1 示例 3. nvl 和trim 下推3.1 示例 LightDB 在24.1版本对oracle_fdw 的where下推进行了增强,新增对如下两种情况进行下推: 字符串比较下推,如 …

LightDB - oracle_fdw 过滤条件下推增强【24.1】

    • 1. 字符串比较下推
      • 1.1 示例
    • 2. 隐式转换下推
      • 2.1 示例
    • 3. nvl 和trim 下推
      • 3.1 示例

LightDB 在24.1版本对oracle_fdw 的where下推进行了增强,新增对如下两种情况进行下推:

  • 字符串比较下推,如 a >‘100’ 这种,具体见下面示例
  • 隐式转换为numeric 类型情况下的下推
  • 新增 nvl 和 trim 函数下推

1. 字符串比较下推

oracle_fdw 不支持字符串比较下推是因为 LightDB 和 Oracle 的排序规则可能不同,下推和不下推的结果可能不同,因此不进行下推。
但对于某些场景,比如字符串都是数字,是个id, 那么不管什么排序规则,大小比较都是相同的。因此 LightDB 提供了一个表级别的选项来支持强制下推这种情况。
选项为:force_pushdown_where_op
可以设置为:on/yes/true 或者 off/no/false

1.1 示例

lightdb@test_o=# CREATE foreign TABLE t1 (id number(10) NOT NULL,val1 varchar(10),val2 char(10),val3 text
) SERVER oradb OPTIONS (table 'T1');
CREATE FOREIGN TABLE
lightdb@test_o=# explain (costs false) select * from t1 where val1 > '1';QUERY PLAN                   ---------------------------------------------------------------------------------
----------------------------------Foreign Scan on t1Filter: ((val1)::text > '1'::text)Oracle query: SELECT /*c1f143f0d9e74f29fb779e0a2ccfbe91*/ r1."ID", r1."VAL1", 
r1."VAL2", r1."VAL3" FROM "T1" r1
(3 rows)lightdb@test_o=#  alter foreign table t1 OPTIONS (add force_pushdown_where_op 'true');
ALTER FOREIGN TABLE
lightdb@test_o=# explain (costs false) select * from t1 where val1 > '1';QUERY PLAN       ---------------------------------------------------------------------------------
----------------------------------------------------------Foreign Scan on t1Oracle query: SELECT /*d1d07899c1c6cc550f34054b7ba97384*/ r1."ID", r1."VAL1", 
r1."VAL2", r1."VAL3" FROM "T1" r1 WHERE (r1."VAL1" > '1')
(2 rows)lightdb@test_o=# drop foreign TABLE t1;
DROP FOREIGN TABLE
lightdb@test_o=# CREATE foreign TABLE t1 (id number(10) NOT NULL,val1 varchar(10),val2 char(10),val3 text
) SERVER oradb OPTIONS (table 'T1', force_pushdown_where_op 'true');
CREATE FOREIGN TABLE
lightdb@test_o=# explain (costs false) select * from t1 where val1 > '1';QUERY PLAN       ---------------------------------------------------------------------------------
----------------------------------------------------------Foreign Scan on t1Oracle query: SELECT /*d1d07899c1c6cc550f34054b7ba97384*/ r1."ID", r1."VAL1", 
r1."VAL2", r1."VAL3" FROM "T1" r1 WHERE (r1."VAL1" > '1')
(2 rows)

2. 隐式转换下推

对于如下SQL,原先是不会下推的:

select * from t1 where val1 > 1;

因为val1 是字符类型, 与 1 比较, 在LightDB 中 val1 会被隐式转换为 numeric 类型。
下面是支持下推此情况的示例(转换为cast (val1 as numebr) 下推):

2.1 示例

lightdb@test_o=# explain (costs false) select * from t1 where val1 > 1;QUERY PLAN---------------------------------------------------------------------------------
------------------------------------------------------------------------Foreign Scan on t1Oracle query: SELECT /*1057989d07288e060655a4377d7d36ef*/ r1."ID", r1."VAL1", 
r1."VAL2", r1."VAL3" FROM "T1" r1 WHERE (cast(r1."VAL1" as number) > 1)
(2 rows)lightdb@test_o=# explain (costs false) select * from t1 where val1::number > 1;QUERY PLAN---------------------------------------------------------------------------------
------------------------------------------------------------------------Foreign Scan on t1Oracle query: SELECT /*1057989d07288e060655a4377d7d36ef*/ r1."ID", r1."VAL1", 
r1."VAL2", r1."VAL3" FROM "T1" r1 WHERE (cast(r1."VAL1" as number) > 1)
(2 rows)

3. nvl 和trim 下推

在 LightDB 中 trim 会转换为 ltrim, rtrim 和 btrim 函数执行,原先已支持 ltrim, rtrim 函数的下推,24.1 支持了对btrim 的下推,也即完全支持了 trim 的下推。

3.1 示例

lightdb@test_o=# explain (costs false) select * from t1 where nvl(val1,' ') = 'abc' order by id;QUERY PLAN                                                                  ---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
---------------------Foreign Scan on t1Oracle query: SELECT /*49625285d521d9e84167b4358a1b57b0*/ r1."ID", r1."VAL1", 
r1."VAL2", r1."VAL3" FROM "T1" r1 WHERE (nvl(r1."VAL1", ' ') = 'abc') ORDER BY r1
."ID" ASC NULLS LAST
(2 rows)lightdb@test_o=# explain (costs false) select * from t1 where trim(val1) = 'abc' order by id;QUERY PLAN                                                             ---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-------------------------------Foreign Scan on t1Oracle query: SELECT /*ad50eef72115ae7525aaaf08663b014c*/ r1."ID", r1."VAL1", 
r1."VAL2", r1."VAL3" FROM "T1" r1 WHERE (TRIM(BOTH ' ' FROM r1."VAL1") = 'abc') O
RDER BY r1."ID" ASC NULLS LAST
(2 rows)lightdb@test_o=# explain (costs false) select * from t1 where trim(LEADING val1) = 'abc' order by id;QUERY PLAN                                                                 ---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-----------------------Foreign Scan on t1Oracle query: SELECT /*e2c065886aa1e3ccb9cc00faa85f9f95*/ r1."ID", r1."VAL1", 
r1."VAL2", r1."VAL3" FROM "T1" r1 WHERE (ltrim(r1."VAL1", ' ') = 'abc') ORDER BY 
r1."ID" ASC NULLS LAST
(2 rows)lightdb@test_o=# explain (costs false) select * from t1 where trim(TRAILING val1) = 'abc' order by id;QUERY PLAN                                                                 ---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-----------------------Foreign Scan on t1Oracle query: SELECT /*4fc7fba86ff56a97069e1102f988519f*/ r1."ID", r1."VAL1", 
r1."VAL2", r1."VAL3" FROM "T1" r1 WHERE (rtrim(r1."VAL1", ' ') = 'abc') ORDER BY 
r1."ID" ASC NULLS LAST
(2 rows)lightdb@test_o=# explain (costs false) select * from t1 where nvl(trim(val1),' ') = 'abc' order by id;QUERY PLAN                                                        ---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-----------------------------------------Foreign Scan on t1Oracle query: SELECT /*77db51933cdfa1dd6edc39f35a00f952*/ r1."ID", r1."VAL1", 
r1."VAL2", r1."VAL3" FROM "T1" r1 WHERE (nvl(TRIM(BOTH ' ' FROM r1."VAL1"), ' ') 
= 'abc') ORDER BY r1."ID" ASC NULLS LAST
(2 rows)
http://www.hkea.cn/news/946059/

相关文章:

  • 乌克兰网站后缀谷歌浏览器下载电脑版
  • 建设部网站撤销注册资质的都是公职人员吗正规网络公司关键词排名优化
  • 杂志网站建设推广方案铜川网络推广
  • 网站建设后怎么搜索引擎优化解释
  • 网站建设维护 天博网络成都营销型网站制作
  • 秦皇岛北京网站建设百度广告投放电话
  • 团购做的比较好的网站营销推广ppt
  • 网站怎么做网站地图重庆网站制作公司哪家好
  • wordpress改地址后打不开seo品牌优化整站优化
  • 网页设计师证书含金量高吗百度网络优化
  • 咸阳网站开发长沙seo优化公司
  • 网站通cms国内十大搜索引擎排名
  • centos7安装 wordpress网站如何进行seo
  • 设计师灵感网站美国今天刚刚发生的新闻
  • 重庆南岸营销型网站建设公司推荐竞价sem托管
  • 深圳做二维码网站建设什么是互联网营销
  • 网易企业邮箱收费标准百色seo关键词优化公司
  • 做网站的财务需求张北网站seo
  • 北京赛车彩票网站怎么做佛山本地网站建设
  • 门户网站的建设方式有哪些网络推广引流
  • 做中东服装有什么网站免费seo刷排名
  • 做网站用java还是c语言百度竞价推广培训
  • 做动画视频的网站市场监督管理局官网入口
  • 做bbs网站教程军事新闻最新消息今天
  • 在哪儿可以找到网站开发的需求搜索引擎优化介绍
  • 成都网站建设代理加盟网络运营培训班多少钱
  • 太原开发网站公司站长工具端口扫描
  • 域控制网站访问自媒体视频发布平台
  • 广西住房和城乡建设委员会网站湖南网站营销seo多少费用
  • 关键词推广名词解释百度竞价关键词怎么优化