我的编程空间,编程开发者的网络收藏夹
学习永远不晚

ORACLE BITMAP概要及简单实验

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

ORACLE BITMAP概要及简单实验

<div> <b style="line-height:1.5;">一、bitmap概要</b> </div> <div> 纲要内容:<br /> 1.定义,什么是位图索引:就是用位图表示的索引,oracle对于选择度底的列的每个键值建立一个位图,位图中的每一位可能对应多个列,位图中位等于1表示特定的行含有此位图表示的键值。<br /> 2.查询,由于索引是位图,所以很多很多时候可以对这些索引中的位图进行位运算-(and 和 or),这样的速度明显比b树快(某些情况下)。由于位图索引可以存储null,所以可以直接通过位图索引计数(肯定是准确的)。后面提到的有点和位图的计算方式是直接相关的。<br /> 3.位图的优点(主要针对dw):<br /> <ul data-front-font-size="14px" style="margin-top:0px;margin-bottom:0px;font-size:14px;"> <li> &nbsp;&nbsp; 减少即席查询的相应时间 </li> <li> 和其它类型索引比较,真正节约了索引数据空间 </li> <li> 即使在非常差的硬件上,也可能会有戏剧化的性能提升 </li> <li> 高效的并行DML和LOAD操作。 </li> <li> 生成索引的时候更高效,首先是不排序,其次是占用的空间少(索引空间)。 </li> <li> 可以通过位图索引直接计数。<br /> </li> </ul> <p> 4.位图索引的缺点(其它资料),也不好说是缺点 </p> <ul data-front-font-size="14px" style="margin-top:0px;margin-bottom:0px;font-size:14px;"> <li> &nbsp;不适合选择度底的列 </li> <li> 如果有比较频繁的insert,update等操作,可能导致性能很底下,因为更新索引用的是行锁(可能锁定多行),而不是排它锁。 </li> <li> 可能会溢出,索引数据块难于放下整个索引值,这导致低效。 </li> </ul> <div> <br /> </div> <div> <b style="background-color:inherit;">二、主要了解以下位图原理图</b><br style="font-family:微软雅黑;font-size:14px;background-color:#FFFFFF;" /> <div style="font-family:微软雅黑;font-size:14px;background-color:#FFFFFF;"> <img data-media-type="image" data-attr-org-class="lazy" data-src-id="8E5B0CED42BD49098911007365EA4D00" data-attr-org-img-file="file:///D:/%E6%9C%89%E9%81%93%E4%BA%91%E7%AC%94%E8%AE%B0/%E6%95%B0%E6%8D%AE%E7%9B%AE%E5%BD%95/zr2095@163.com/9e1562e4eb3f487794640ad476189bf2/65111196479.jpeg" class="lazy" data-src="file://D:/%E6%9C%89%E9%81%93%E4%BA%91%E7%AC%94%E8%AE%B0/%E6%95%B0%E6%8D%AE%E7%9B%AE%E5%BD%95/zr2095@163.com/9e1562e4eb3f487794640ad476189bf2/65111196479.jpeg" alt="oracle位图索引 - 我行我素 - 逝者如斯夫,不舍昼夜" style="background-color:inherit;cursor:default;display:inline-block;margin-top:8px;max-width:800px;height:auto;" /> </div> &nbsp;<img class="lazy" data-src="/attachment/201510/8/30208428_144428958888JP.jpeg" width="492" height="376" alt="" /><br /> <div style="font-family:微软雅黑;font-size:14px;background-color:#FFFFFF;"> <br /> <img class="lazy" data-src="/attachment/201510/8/30208428_144428960179wx.jpeg" width="679" height="513" alt="" />&nbsp; </div> <div style="font-family:微软雅黑;font-size:14px;background-color:#FFFFFF;"> <br style="background-color:inherit;" /> 需要注意的是,这只是个示意图,实际上每个位图的位数并非刚好等于记录数,而是会根据情况来分解,否则对于居多的数据而言,位图未免太大了。 </div> <br /> <br /> </div> <div> <br /> </div> <b>三、bitmap原理解析</b> </div> <div> <p style="font-size:14px;line-height:21px;white-space:normal;widows:auto;color:#333333;font-family:tahoma, 宋体;text-align:justify;background-color:#FAFAFC;"> bitmap的存储结果相对来说,复杂一点。bitmap不存储rowid,rowid存储在每一个bitmap的头部,都存储了rowid的启示位置与结束位置。ORACLE通过自己的内部算 法,算出来相应的ROWID。<br style="background-color:inherit;" /> 位图中的每一位,都记录是否有值。如表的记录是这样存储的: </p> <table border="1" cellpadding="2" cellspacing="0" style="font-size:14px;margin-top:10px;margin-bottom:10px;widows:auto;color:#333333;font-family:tahoma, 宋体;text-align:justify;background-color:#FAFAFC;"> <tbody style="background-color:inherit;"> <tr style="background-color:inherit;"> <td style="word-break:break-all;border:1px solid #999999;padding:5px 16px 5px 12px;min-height:25px;min-width:25px;height:25px;background-color:inherit;line-height:1.6;"> row-value </td> </tr> <tr style="background-color:inherit;"> <td style="word-break:break-all;border:1px solid #999999;padding:5px 16px 5px 12px;min-height:25px;min-width:25px;height:25px;background-color:inherit;line-height:1.6;"> male </td> </tr> <tr style="background-color:inherit;"> <td style="word-break:break-all;border:1px solid #999999;padding:5px 16px 5px 12px;min-height:25px;min-width:25px;height:25px;background-color:inherit;line-height:1.6;"> female </td> </tr> <tr style="background-color:inherit;"> <td style="word-break:break-all;border:1px solid #999999;padding:5px 16px 5px 12px;min-height:25px;min-width:25px;height:25px;background-color:inherit;line-height:1.6;"> female </td> </tr> <tr style="background-color:inherit;"> <td style="word-break:break-all;border:1px solid #999999;padding:5px 16px 5px 12px;min-height:25px;min-width:25px;height:25px;background-color:inherit;line-height:1.6;"> male </td> </tr> </tbody> </table> <p style="font-size:14px;line-height:21px;white-space:normal;widows:auto;color:#333333;font-family:tahoma, 宋体;text-align:justify;background-color:#FAFAFC;"> 那么对应的bitmap则是这样存储的: </p> <table border="1" cellpadding="2" cellspacing="0" width="100%" style="font-size:14px;margin-top:10px;margin-bottom:10px;widows:auto;color:#333333;font-family:tahoma, 宋体;text-align:justify;background-color:#FAFAFC;"> <tbody style="background-color:inherit;"> <tr style="background-color:inherit;"> <td style="word-break:break-all;border:1px solid #999999;padding:5px 16px 5px 12px;min-height:25px;min-width:25px;height:25px;background-color:inherit;line-height:1.6;"> rowid的启示位置与结束位置 </td> <td style="word-break:break-all;border:1px solid #999999;padding:5px 16px 5px 12px;min-height:25px;min-width:25px;height:25px;background-color:inherit;line-height:1.6;"> rowid的启示位置与结束位置 </td> </tr> <tr style="background-color:inherit;"> <td style="word-break:break-all;border:1px solid #999999;padding:5px 16px 5px 12px;min-height:25px;min-width:25px;height:25px;background-color:inherit;line-height:1.6;"> male </td> <td style="word-break:break-all;border:1px solid #999999;padding:5px 16px 5px 12px;min-height:25px;min-width:25px;height:25px;background-color:inherit;line-height:1.6;"> female </td> </tr> <tr style="background-color:inherit;"> <td style="word-break:break-all;border:1px solid #999999;padding:5px 16px 5px 12px;min-height:25px;min-width:25px;height:25px;background-color:inherit;line-height:1.6;"> 1 </td> <td style="word-break:break-all;border:1px solid #999999;padding:5px 16px 5px 12px;min-height:25px;min-width:25px;height:25px;background-color:inherit;line-height:1.6;"> 0 </td> </tr> <tr style="background-color:inherit;"> <td style="word-break:break-all;border:1px solid #999999;padding:5px 16px 5px 12px;min-height:25px;min-width:25px;height:25px;background-color:inherit;line-height:1.6;"> 0 </td> <td style="word-break:break-all;border:1px solid #999999;padding:5px 16px 5px 12px;min-height:25px;min-width:25px;height:25px;background-color:inherit;line-height:1.6;"> 1 </td> </tr> <tr style="background-color:inherit;"> <td style="word-break:break-all;border:1px solid #999999;padding:5px 16px 5px 12px;min-height:25px;min-width:25px;height:25px;background-color:inherit;line-height:1.6;"> 0 </td> <td style="word-break:break-all;border:1px solid #999999;padding:5px 16px 5px 12px;min-height:25px;min-width:25px;height:25px;background-color:inherit;line-height:1.6;"> 1 </td> </tr> <tr style="background-color:inherit;"> <td style="word-break:break-all;border:1px solid #999999;padding:5px 16px 5px 12px;min-height:25px;min-width:25px;height:25px;background-color:inherit;line-height:1.6;"> 1 </td> <td style="word-break:break-all;border:1px solid #999999;padding:5px 16px 5px 12px;min-height:25px;min-width:25px;height:25px;background-color:inherit;line-height:1.6;"> 0 </td> </tr> </tbody> </table> <p style="font-size:14px;line-height:21px;white-space:normal;widows:auto;color:#333333;font-family:tahoma, 宋体;text-align:justify;background-color:#FAFAFC;"> 由 此可见,存储的空间大大的节省了,另外带来的收益就是扫描的BLOCK也大大减少了。 </p> <p style="font-size:14px;line-height:21px;white-space:normal;widows:auto;color:#333333;font-family:tahoma, 宋体;text-align:justify;background-color:#FAFAFC;"> 如果查找性别是male的数据,ORACLE只会去 搜索MALE这一列,然后是1的记录,返回即可。 </p> <p style="font-size:14px;line-height:21px;white-space:normal;widows:auto;color:#333333;font-family:tahoma, 宋体;text-align:justify;background-color:#FAFAFC;"> <br /> </p> <p style="font-size:14px;line-height:21px;white-space:normal;widows:auto;color:#333333;font-family:tahoma, 宋体;text-align:justify;background-color:#FAFAFC;"> 如果是针对BITMAP字段本身做OR,AND这样的查询,那么ORACLE会在BITMAP索引内部,先做一次判断,找出符合结果的,再去计算ROWID,最后给出相应的VALUE,示意图如下: </p> <p style="font-size:14px;line-height:21px;white-space:normal;widows:auto;color:#333333;font-family:tahoma, 宋体;background-color:#FAFAFC;"> <img class="lazy" data-src="/attachment/201510/8/30208428_1444289696Hga7.gif" width="600" height="176" alt="" /> </p> <p style="font-size:14px;line-height:21px;white-space:normal;widows:auto;color:#333333;font-family:tahoma, 宋体;background-color:#FAFAFC;"> <br /> </p> <p style="font-size:14px;line-height:21px;white-space:normal;widows:auto;color:#333333;font-family:tahoma, 宋体;text-align:justify;background-color:#FAFAFC;"> <strong style="background-color:inherit;">bitmap join index</strong><br style="background-color:inherit;" /> bitmap join index,它的特点就是将多张表的JOIN结果,存储在一个索引里面,然后使用BITMAP的形式进行存储。这个对于类似DW那样的多表join效率提高很明显。<br style="background-color:inherit;" /> 做用3张表join来做测试如下,原来的SQL是这样的:<br style="background-color:inherit;" /> test@DB&gt;<span style="line-height:1.5;">select wt_cust.company_name,wt_cust.gmt_create</span> </p> <p style="font-size:14px;line-height:21px;white-space:normal;widows:auto;color:#333333;font-family:tahoma, 宋体;text-align:justify;background-color:#FAFAFC;"> 2&nbsp;&nbsp; from wt_cust,wt_CUST_EXT ,wt_CUST_BOOK<br style="background-color:inherit;" /> 3&nbsp; where wt_cust.id=wt_CUST_EXT.Cust_Id<br style="background-color:inherit;" /> 4&nbsp; and wt_CUST_BOOK.Cust_Id=wt_cust.id; </p> <p style="font-size:14px;line-height:21px;white-space:normal;widows:auto;color:#333333;font-family:tahoma, 宋体;text-align:justify;background-color:#FAFAFC;"> 58 rows selected. </p> <p style="font-size:14px;line-height:21px;white-space:normal;widows:auto;color:#333333;font-family:tahoma, 宋体;text-align:justify;background-color:#FAFAFC;"> Elapsed: 00:00:00.01 </p> <p style="font-size:14px;line-height:21px;white-space:normal;widows:auto;color:#333333;font-family:tahoma, 宋体;text-align:justify;background-color:#FAFAFC;"> Execution Plan<br style="background-color:inherit;" /> ———————————————————- </p> <p style="font-size:14px;line-height:21px;white-space:normal;widows:auto;color:#333333;font-family:tahoma, 宋体;text-align:justify;background-color:#FAFAFC;"> —————————————————————————————————-<br style="background-color:inherit;" /> | Id&nbsp; | Operation&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Rows&nbsp; | Bytes | Cost (%CPU)|<br style="background-color:inherit;" /> —————————————————————————————————-<br style="background-color:inherit;" /> |&nbsp;&nbsp; 0 | SELECT STATEMENT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 54 |&nbsp; 2484 |&nbsp;&nbsp; 179&nbsp;&nbsp; (0)|<br style="background-color:inherit;" /> |&nbsp;&nbsp; 1 |&nbsp; NESTED LOOPS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 54 |&nbsp; 2484 |&nbsp;&nbsp; 179&nbsp;&nbsp; (0)|<br style="background-color:inherit;" /> |&nbsp;&nbsp; 2 |&nbsp;&nbsp; NESTED LOOPS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 177 |&nbsp; 7257 |&nbsp;&nbsp; 179&nbsp;&nbsp; (0)|<br style="background-color:inherit;" /> <span style="background-color:inherit;color:#FF0000;">|&nbsp;&nbsp; 3 |&nbsp;&nbsp;&nbsp; INDEX FULL SCAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | wt_CUST_BOOK_UK&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 177 |&nbsp; 1062 |&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp; (0)|<br style="background-color:inherit;" /> |&nbsp;&nbsp; 4 |&nbsp;&nbsp;&nbsp; TABLE ACCESS BY INDEX ROWID| wt_CUST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; 1 |&nbsp;&nbsp;&nbsp; 35 |&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp; (0)|<br style="background-color:inherit;" /> |*&nbsp; 5 |&nbsp;&nbsp;&nbsp;&nbsp; INDEX UNIQUE SCAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | wt_CUST_PK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; 1 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp; (0)|<br style="background-color:inherit;" /> |*&nbsp; 6 |&nbsp;&nbsp; INDEX RANGE SCAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | wt_CUST_EXT_CID_IND |&nbsp;&nbsp;&nbsp;&nbsp; 1 |&nbsp;&nbsp;&nbsp;&nbsp; 5 |&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp; (0)|</span><br style="background-color:inherit;" /> —————————————————————————————————- </p> <p style="font-size:14px;line-height:21px;white-space:normal;widows:auto;color:#333333;font-family:tahoma, 宋体;text-align:justify;background-color:#FAFAFC;"> 一 个3表join,效率很差。如果我们创建BITMAP JOIN INDEX则可以避免这种情况的发生:<br style="background-color:inherit;" /> test@DB&gt;CREATE BITMAP INDEX cust_wt_test<br style="background-color:inherit;" /> 2&nbsp; ON&nbsp;&nbsp;&nbsp;&nbsp; wt_cust(wt_cust.company_name)<br style="background-color:inherit;" /> 3&nbsp; FROM&nbsp;&nbsp; wt_cust,wt_CUST_EXT ,wt_CUST_BOOK<br style="background-color:inherit;" /> 4&nbsp; WHERE&nbsp; wt_cust.id=wt_CUST_EXT.Cust_Id<br style="background-color:inherit;" /> 5&nbsp; and wt_CUST_BOOK.Cust_Id=wt_cust.id<br style="background-color:inherit;" /> 6&nbsp; tablespace test_ind&nbsp; ; </p> <p style="font-size:14px;line-height:21px;white-space:normal;widows:auto;color:#333333;font-family:tahoma, 宋体;text-align:justify;background-color:#FAFAFC;"> Index created. </p> <p style="font-size:14px;line-height:21px;white-space:normal;widows:auto;color:#333333;font-family:tahoma, 宋体;text-align:justify;background-color:#FAFAFC;"> Elapsed: 00:00:00.08<br style="background-color:inherit;" /> 再来看看SQL的执行计划:<br style="background-color:inherit;" /> xx@DB&gt;select&nbsp; wt_cust.company_name,wt_cust.gmt_create<br style="background-color:inherit;" /> 2&nbsp;&nbsp; from wt_cust,wt_CUST_EXT ,wt_CUST_BOOK<br style="background-color:inherit;" /> 3&nbsp; where wt_cust.id=wt_CUST_EXT.Cust_Id<br style="background-color:inherit;" /> 4&nbsp; and wt_CUST_BOOK.Cust_Id=wt_cust.id; </p> <p style="font-size:14px;line-height:21px;white-space:normal;widows:auto;color:#333333;font-family:tahoma, 宋体;text-align:justify;background-color:#FAFAFC;"> 58 rows selected. </p> <p style="font-size:14px;line-height:21px;white-space:normal;widows:auto;color:#333333;font-family:tahoma, 宋体;text-align:justify;background-color:#FAFAFC;"> Elapsed: 00:00:00.00 </p> <p style="font-size:14px;line-height:21px;white-space:normal;widows:auto;color:#333333;font-family:tahoma, 宋体;text-align:justify;background-color:#FAFAFC;"> Execution Plan<br style="background-color:inherit;" /> ———————————————————- </p> <p style="font-size:14px;line-height:21px;white-space:normal;widows:auto;color:#333333;font-family:tahoma, 宋体;text-align:justify;background-color:#FAFAFC;"> —————————————————————————————<br style="background-color:inherit;" /> | Id&nbsp; | Operation&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Rows&nbsp; | Bytes | Cost (%CPU)|<br style="background-color:inherit;" /> —————————————————————————————<br style="background-color:inherit;" /> |&nbsp;&nbsp; 0 | SELECT STATEMENT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 1834K|&nbsp;&nbsp;&nbsp; 61M|&nbsp;&nbsp; 219K&nbsp; (1)|<br style="background-color:inherit;" /> |&nbsp;&nbsp; 1 |&nbsp; TABLE ACCESS BY INDEX ROWID | wt_CUST |&nbsp; 1834K|&nbsp;&nbsp;&nbsp; 61M|&nbsp;&nbsp; 219K&nbsp; (1)|<br style="background-color:inherit;" /> |&nbsp;&nbsp; 2 |&nbsp;&nbsp; BITMAP CONVERSION TO ROWIDS|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br style="background-color:inherit;" /> <span style="background-color:inherit;color:#FF0000;">|&nbsp;&nbsp; 3 |&nbsp;&nbsp;&nbsp; BITMAP INDEX FULL SCAN&nbsp;&nbsp;&nbsp; | CUST_WT_TEST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |</span><br style="background-color:inherit;" /> ————————————————————————————— </p> <p style="font-size:14px;line-height:21px;white-space:normal;widows:auto;color:#333333;font-family:tahoma, 宋体;text-align:justify;background-color:#FAFAFC;"> 请 着重注意红色部分。逻辑读大大降低!! </p> <p style="font-size:14px;line-height:21px;white-space:normal;widows:auto;color:#333333;font-family:tahoma, 宋体;text-align:justify;background-color:#FAFAFC;"> <br /> </p> </div>

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

ORACLE BITMAP概要及简单实验

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

android实现session保持简要概述及实现

在最近写的一个Android中需要请求web服务器中的数据,有一个登录Activity,登录后会到MainActivity,这中间登录和MainActivity都需要请求php的jsonapi,所以要在网络请求中保持session的,研究了
2022-06-06

Android文本框搜索和清空效果实现代码及简要概述

前言 本文实现的效果:文本框输入为空时显示输入的图标;不为空时显示清空的图标,此时点击清空图标能清空文本框内输入文字。正文 一、实现效果    二、实现代码 绑定事件 代码如下: private Drawable mIconSearchD
2022-06-06

Nodejs中session的简单使用及通过session实现身份验证的方法

session 不用多介绍,使一个http可以对应一个终端用户。session的本质使用cookie来实现。原理大概是:http 带来服务端提前设置 cookie,服务端拿到标示用户身份的cookie, 再去固定地点(数据库,文件)检索出对
2022-06-04

element-ui el-upload实现上传文件及简单的上传文件格式验证功能

前端上传文件后,后端接受文件进行处理后直接返回处理后的文件,前端直接再将文件下载下来,下面这篇文章主要给大家介绍了关于element-ui el-upload实现上传文件及简单的上传文件格式验证功能的相关资料,需要的朋友可以参考下
2022-11-16

编程热搜

目录