文档章节

大表之困惑 - 数据建模的前期规划十分重要

郑加威
 郑加威
发布于 2017/01/30 17:30
字数 402
阅读 6
收藏 0

这几天被一个数据库中的大表所困扰,这是一个插入非常频繁的数据表,该表目前大约有20亿记录,是一个分区表:

SQL> SELECT TABLE_NAME,NUM_ROWS,BLOCKS,AVG_SPACE,SAMPLE_SIZE,LAST_ANALYZED
  2  FROM DBA_TABLES WHERE OWNER='SMS' AND TABLE_NAME='SSMG';

TABLE_NAME                       NUM_ROWS     BLOCKS  AVG_SPACE SAMPLE_SIZE LAST_ANALYZE
------------------------------ ---------- ---------- ---------- ----------- ------------
SSMG                           2000426788   60053382          0   101416650 12-SEP-09

然而这个表上建有的都是全局索引,现在需要按照跟索引基本无关的条件进行删除,以下几个索引都无可利用:

SQL> select
  2      INDEX_NAME,BLEVEL,LEAF_BLOCKS,DISTINCT_KEYS,
  3      NUM_ROWS,CLUSTERING_FACTOR,last_analyzed
  4  from
  5      dba_indexes t
  6  where
  7      table_name = 'SSMG'
  8  and table_owner = 'SMS'
  9  /

INDEX_NAME                   BLEVEL LEAF_BLOCKS DISTINCT_KEYS   NUM_ROWS CLUSTERING_FACTOR LAST_ANALYZE
------------------------ ---------- ----------- ------------- ---------- ----------------- ------------
IDX_SMS_DEST_MDN                3    12186077      19507227 2071388105        1816174507 12-SEP-09
IDX_SMS_SERVICE_ID              3     8184696            48 1990938187         113031962 12-SEP-09
UN_SMS                          4    21717598    1973096899 1973096899         138625843 12-SEP-09

客户写了个Loop循环,通过另外一个表的关联去判断删除,另外一个表具有400万记录,初步计算了一下程序效率,跑完一次大约要200天。

好了,现在的问题是,要么面对不可能,要么建个索引,加快处理,可是在20亿上建一个索引,即便是Online的方式,对应用的性能也会有几大的影响。

要么很复杂的去处理,要么很慢的去处理,当初如果多加个索引,该有多好啊!

© 著作权归作者所有

郑加威
粉丝 165
博文 183
码字总数 387300
作品 0
杭州
架构师
私信 提问
维度建模的10大基本原则

  【IT168 评论】   遵循这些原则进行维度建模可以保证数据粒度合理,模型灵活,能够适应未来的信息资源,违反这些原则你将会把用户弄糊涂,并且会遇到数据仓库障碍。   原则1、载入详...

IT168网站
2009/07/21
0
0
独家剖解浙江移动大数据平台有多牛!

“一切抛开业务的架构设计,都是耍流氓!”在Gdevops全球敏捷运维峰会杭州站的现场,汤人杰老师带来了题为《浙江移动大数据平台践行之路》的精彩分享。他提到,随着大数据技术的发展及前期缺...

汤人杰
2016/04/20
0
0
软件设计是怎样炼成的(6)——打造系统的底蕴(数据库设计)(上篇)

摘要: 数据库是系统的根基,如果需求变更导致你要经常修改数据库的字段,甚至需要修改表及表关系,相信多折腾几次谁都受不了!因为数据库结构的变化,不仅仅是数据库本身的变更,实体类、数...

fireball1975
2014/02/25
0
0
Greenplum:你不可不知的实施与维护最佳实践

近两年,国内的大数据市场逐渐成熟,有真实的大数据处理需求的企业数量呈现爆炸性的增长,从传统的数据库产品往MPP数据库转型的增长势头十分迅猛。Greenplum作为MPP产品的领头羊,具有较低的...

陈彰
2016/02/23
0
0
深度 | 详解可视化利器t-SNE算法:数无形时少直觉

T 分布随机近邻嵌入(T-Distribution Stochastic Neighbour Embedding)是一种用于降维的机器学习方法,它能帮我们识别相关联的模式。t-SNE 主要的优势就是保持局部结构的能力。这意味着高维...

op07p6aaqo9u71
2017/11/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
今天
2.2K
15
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
38
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
40
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
61
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
21
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部