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

工作是套模板做网站北京seo加盟

工作是套模板做网站,北京seo加盟,汉阳网站建设,淄博专业网站设计有时开发进行表结构设计,对表字段是否为空过于随意,出现诸如id1id2,如果允许字段为空,因为Oracle中空值并不等于空值,有可能得到意料之外的结果。除此之外,最关键的是,NULL会影响oracle的执行计…

有时开发进行表结构设计,对表字段是否为空过于随意,出现诸如id1=id2,如果允许字段为空,因为Oracle中空值并不等于空值,有可能得到意料之外的结果。除此之外,最关键的是,NULL会影响oracle的执行计划。

以下为NULL影响执行计划的测试示例。

/*1.构建test表,其中create table方式建立的test表结构object_id非空*,走索引/

SELECT Count(*) FROM all_objects WHERE object_id IS NOT NULL; --41790笔
DROP TABLE test;
CREATE TABLE test AS SELECT * FROM all_objects WHERE object_id IS NOT NULL; ----41791笔
CREATE INDEX idx_test ON test(object_id);
ANALYZE TABLE test compute STATISTICS FOR TABLE FOR ALL indexes FOR ALL indexed COLUMNS;
EXPLAIN PLAN FOR SELECT Count(*) FROM test;
SELECT * FROM TABLE(dbms_xplan.display);

Plan hash value: 3508397080                                              
                                                                         
--------------------------------------------------------------------------
| Id  | Operation             | Name     | Rows  | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT      |          |     1 |    23   (5)| 00:00:01 |
|   1 |  SORT AGGREGATE       |          |     1 |            |          |
|   2 |   INDEX FAST FULL SCAN| IDX_TEST | 41791 |    23   (5)| 00:00:01 |
--------------------------------------------------------------------------

/*2.改变test表结构,使得object_id字段为NULL,并更新一笔资料为NULL*,走全表/

ALTER TABLE test MODIFY object_id NUMBER NULL;
UPDATE test SET object_id=NULL WHERE ROWNUM=1;
COMMIT;
EXPLAIN PLAN FOR SELECT Count(*) FROM test;
SELECT * FROM TABLE(dbms_xplan.display);
Plan hash value: 1950795681                                       
                                                                  
-------------------------------------------------------------------
| Id  | Operation          | Name | Rows  | Cost (%CPU)| Time     |
-------------------------------------------------------------------
|   0 | SELECT STATEMENT   |      |     1 |   135   (2)| 00:00:02 |
|   1 |  SORT AGGREGATE    |      |     1 |            |          |
|   2 |   TABLE ACCESS FULL| TEST | 41791 |   135   (2)| 00:00:02 |
-------------------------------------------------------------------

/*3.对SQL指令增加条件过滤NULL之资料*,走索引/

EXPLAIN PLAN FOR SELECT Count(*) FROM test WHERE object_id IS NOT NULL;
SELECT * FROM TABLE(dbms_xplan.display);
Plan hash value: 3508397080                                                      
                                                                                 
----------------------------------------------------------------------------------
| Id  | Operation             | Name     | Rows  | Bytes | Cost (%CPU)| Time     |
----------------------------------------------------------------------------------
|   0 | SELECT STATEMENT      |          |     1 |     4 |    23   (5)| 00:00:01 |
|   1 |  SORT AGGREGATE       |          |     1 |     4 |            |          |
|*  2 |   INDEX FAST FULL SCAN| IDX_TEST | 41791 |   163K|    23   (5)| 00:00:01 |
----------------------------------------------------------------------------------
                                                                                 
Predicate Information (identified by operation id):                              
---------------------------------------------------                              
                                                                                 
   2 - filter("OBJECT_ID" IS NOT NULL)                                           

/*4.将上面改的那笔object_id is NULL的资料delete掉,再查看plan,依然走全表*/

DELETE FROM test WHERE object_id IS NULL;
COMMIT;
ANALYZE TABLE test compute STATISTICS FOR TABLE FOR ALL indexes FOR ALL indexed COLUMNS;
EXPLAIN PLAN FOR SELECT Count(*) FROM test;
SELECT * FROM TABLE(dbms_xplan.display); 

Plan hash value: 1950795681                                       
                                                                  
-------------------------------------------------------------------
| Id  | Operation          | Name | Rows  | Cost (%CPU)| Time     |
-------------------------------------------------------------------
|   0 | SELECT STATEMENT   |      |     1 |   135   (2)| 00:00:02 |
|   1 |  SORT AGGREGATE    |      |     1 |            |          |
|   2 |   TABLE ACCESS FULL| TEST | 41790 |   135   (2)| 00:00:02 |
-------------------------------------------------------------------

综上,看起来,假如索引列的表结构非空,则会走索引;若索引列表结构可空,则无论是否存在null资料,都会走全表;可以用where 索引列 is not null过滤空资料,则还是会走索引。

转自:http://www.linuxidc.com/Linux/2012-09/69938.htm

 

转载于:https://www.cnblogs.com/autumnlj/p/5754284.html

http://www.lbrq.cn/news/2794897.html

相关文章:

  • 怎么做自动提卡网站常德政府网站市民留言
  • 做网站维护价格今日足球比赛分析推荐
  • 渭南市建网站产品线下推广方式都有哪些
  • 大余网站帮我搜一下长沙做网络销售
  • 做网站需要看那几点排名优化公司口碑哪家好
  • 网站备案未注销 影响网站如何优化推广
  • wordpress h5制作插件武汉整站优化
  • 用照片做的ppt模板下载网站淘数据
  • 重庆网站推广机构衡水seo营销
  • 电商网站设计规划书seo网站排名优化教程
  • 安徽建网站公司怎样优化关键词到首页
  • 网站怎么做隐藏内容谷歌优化seo
  • wordpress 用户权限分配seo网络营销课程
  • 潍坊哪家做网站做的最好竞价托管推广
  • 上传设计作品的网站郑州网站优化推广
  • 专业网站建设服务报价百度站长工具验证
  • 垦利网页定制seo网站推广计划
  • 青岛 网站维护关键字
  • 怎么做网站内部搜索功能软文广告示范
  • wordpress下拉南宁网站运营优化平台
  • 织梦可以做婚纱影楼网站吗免费seo
  • 网站定制型和营销型广点通和腾讯朋友圈广告区别
  • asp网站qq登录太原seo外包平台
  • 建设购物网站论文网站alexa排名查询
  • 营业推广谷歌seo外链
  • 刚创业 建网站中国新闻今日头条
  • 音乐网站用dw怎么做网络营销比较常用的营销模式
  • 网页设计与网站建设课程报告百度最怕哪个投诉电话
  • 小狗做爰网站搜索引擎提交入口网址
  • 潍坊专业网站建设哪家好广告的六种广告形式
  • redis在Spring中应用相关
  • 深入理解与应用向量嵌入(Vector Embeddings):原理、实现与多场景实践
  • 【0基础PS】图片格式
  • 网络间的通用语言TCP/IP-网络中的通用规则3
  • 静配中心配药智能化:基于高并发架构的Go语言实现
  • 【技术博客】480p 老番 → 8K 壁纸:APISR × SUPIR × CCSR「多重高清放大」完全指南