新足迹

 找回密码
 注册

精华好帖回顾

· == 煮饭这件小事 (二) -- 豌豆饭 == (2018-1-8) 胡须康 · 油菜花开了,2011春天又到了,又去了一趟。 (2010-10-15) 陈少
· 【三刀厨侠争霸赛】买菜便宜的好处 (2008-9-29) big_beast · 自己制作烤鸭(上做法了30# (2007-11-30) 云淡风轻
Advertisement
Advertisement
楼主:月亮

一个table,25亿条记录,每天要更新,最快的方法? [复制链接]

发表于 2013-4-10 14:30 |显示全部楼层
此文章由 Fernando 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Fernando 所有!转贴必须注明作者、出处和本声明,并保持内容完整
典 发表于 2013-4-10 12:44
这个Trigger Sql也有
跟前面提到的flag思路差不多
如果任何修改增加,就用trigger标记一下表示这条记录需 ...

这样应该挺快的
like hell
Advertisement
Advertisement

发表于 2013-4-10 15:56 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
淘宝数据库大好多数量级
他们曾经用oracle
现在?抛弃oracle了
转向Mysql

发表于 2013-4-10 16:53 |显示全部楼层
此文章由 Fernando 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Fernando 所有!转贴必须注明作者、出处和本声明,并保持内容完整
典 发表于 2013-4-10 14:56
淘宝数据库大好多数量级
他们曾经用oracle
现在?抛弃oracle了

淘宝直接和厂商定制硬件,大量使用开源软件,开始贡献自己的版本
like hell

发表于 2013-4-10 16:56 |显示全部楼层
此文章由 workflow 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 workflow 所有!转贴必须注明作者、出处和本声明,并保持内容完整
DW一般都是增量加载吧,除了第一次上线是full load,后面的都是增量加载啊

发表于 2013-4-10 17:05 |显示全部楼层
此文章由 porcorosso 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 porcorosso 所有!转贴必须注明作者、出处和本声明,并保持内容完整
典 发表于 2013-4-10 14:56
淘宝数据库大好多数量级
他们曾经用oracle
现在?抛弃oracle了

反而用上mysql???

牛就一个痣!

发表于 2013-4-10 17:28 |显示全部楼层
此文章由 wonderdream 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 wonderdream 所有!转贴必须注明作者、出处和本声明,并保持内容完整
SQL Server Table Partitioning

Please search "SQL Server Table Partitioning: Resources" in google and you should find Brent Ozar's blog regarding this topic
Advertisement
Advertisement

发表于 2013-4-10 17:37 |显示全部楼层
此文章由 yangwulong1978 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 yangwulong1978 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我在想再过10年这个TABLE 有多大,

发表于 2013-4-10 17:38 |显示全部楼层
此文章由 wonderdream 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 wonderdream 所有!转贴必须注明作者、出处和本声明,并保持内容完整
the ultimate and quickest solution is the Partition Switching.

You load the source data into a heap and switch it into a empty partition of your target fact table.

Make sure you test it on your dev environment and know its limitation.

Also, you could use T-SQL bulk insert with tablock to enable minimally logging. If SSIS is used, you could turn on trace flag 610 to get minimally logged operation. check the SSIS whitepaper for example.
a

发表于 2013-4-10 17:41 |显示全部楼层
此文章由 wonderdream 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 wonderdream 所有!转贴必须注明作者、出处和本声明,并保持内容完整
wonderdream 发表于 2013-4-10 16:28
SQL Server Table Partitioning

Please search "SQL Server Table Partitioning: Resources" in google an ...

If you think the blog helps you, please gives me some score. I really need it to post URL. It's a bit sick that I can't even post links.
a

发表于 2013-4-10 17:47 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 典 于 2013-4-10 16:50 编辑

话说大淘宝去年决定普及mysql ,去掉oracle, 引起很多人注意
1) 阿里公司内部近80DBA 怎么办?何去何从?
2)如果国内其它公司效法,全国n万高薪oracle DBA怎么办?
3)广大学生问:我该怎么办,学哪个数据库有前途?
职业灌水赚分

发表于 2013-4-10 17:55 |显示全部楼层
此文章由 wonderdream 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 wonderdream 所有!转贴必须注明作者、出处和本声明,并保持内容完整
月亮 发表于 2013-4-10 10:33
column倒不是很多,总共size是230GB,加上Index的话是500GB

Apparently, you haven't applied compression on both tables and indexes. You should seriously consider it.

Partition your tables and place your active updating files onto your fastest sub storage system (SSD or fusion IO, if you can get one) and you will see a boost of read speed.
a
Advertisement
Advertisement

发表于 2013-4-10 17:55 |显示全部楼层
此文章由 huaxianz 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 huaxianz 所有!转贴必须注明作者、出处和本声明,并保持内容完整
huaxianz 发表于 2013-4-10 10:11
不是太清楚问题
不过一般可以用CDC,partitioning
25亿条一般来说绝对算大了,不过更要看width,总体的size更 ...

500GB一个表?Omg,绝对算VLDB了。
楼主可以看一下CDC,绝对是用来解决这种问题的。每次都truncate table根本不现实。
partitioning也是必须的。
如果ssis能用2012,cdc是集成的,非常好用。

发表于 2013-4-10 18:00 |显示全部楼层
此文章由 teddymu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 teddymu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
partition or drop -> re-create

发表于 2013-4-10 19:10 |显示全部楼层
此文章由 huaxianz 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 huaxianz 所有!转贴必须注明作者、出处和本声明,并保持内容完整
典 发表于 2013-4-10 16:47
话说大淘宝去年决定普及mysql ,去掉oracle, 引起很多人注意
1) 阿里公司内部近80DBA 怎么办?何去何从?
2 ...

mysql不需要DBA了吗?
不懂,纯属提问,不是反问。

发表于 2013-4-10 19:23 |显示全部楼层
此文章由 Fernando 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Fernando 所有!转贴必须注明作者、出处和本声明,并保持内容完整
典 发表于 2013-4-10 16:47
话说大淘宝去年决定普及mysql ,去掉oracle, 引起很多人注意
1) 阿里公司内部近80DBA 怎么办?何去何从?
2 ...

做了几年了,去年是出成果的时候。我认识的人有转MySQL 的,有离开的
。其实MySQL  dba 收入更高,他们背后没有oracle 支持
like hell

发表于 2013-4-10 19:27 |显示全部楼层
此文章由 henda 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 henda 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我觉得lz的 db table 能到 230GB基本上应该可以断定之前没有partition, 也没有 filegroup,filegroup 也必需要有 multiple disks 才能达到好效果。

lz 的 source table 可有 create 和 modification timestamp?

如有可以 sliding window time 读取数据:

select x,y,z
from source_table
where ((create_dttm >= lset and create_dttm < cet) or
          (modif_dttm >= lset and modif_dttm < cet))

lset : last successfull extraction time
cet: current extraction time

记得 traverse lset,cet


如果用的是 2008, 建议如下几个步骤:

(1) data_compression = page
(2) 如 disk space 许可,可以尝试 raw file destination。
(3)用基本的 lookup, new row 直接insert,modified row 去 temp table
(4) 读 temp table 进行 update, update 可以用 slowly changing dimension,如果数量太多可以用 merge statement
(5) oldb destination 记得 fast load
Advertisement
Advertisement

发表于 2013-4-10 19:47 |显示全部楼层
此文章由 henda 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 henda 所有!转贴必须注明作者、出处和本声明,并保持内容完整
月亮 发表于 2013-4-10 12:05
用merge into也很慢。。。慢死人。。。死人。。。人。。。

merge into 很慢是因为 source 太多了,有没有办法减少 source row,比如先 insert new row,modified row 写到 temp table,merge statement 只读 temp table? merge statement 没 index 也是不归路。。。

发表于 2013-4-10 20:15 |显示全部楼层
此文章由 bluesknight 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bluesknight 所有!转贴必须注明作者、出处和本声明,并保持内容完整
每天tuncate reload?source table 没有change flag,update datetime,insert datetime之类的control column么?一般都是initial load之后每天就跑个delta啊

发表于 2013-4-10 22:11 |显示全部楼层
此文章由 jl162401 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 jl162401 所有!转贴必须注明作者、出处和本声明,并保持内容完整
上啥oracle啊 Teradata了

Oracle的话 建议研究一下wisdomforce 的 fastreader

或者直接bigdata
头像被屏蔽

禁止访问

发表于 2013-4-10 22:23 |显示全部楼层
此文章由 atransformer 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 atransformer 所有!转贴必须注明作者、出处和本声明,并保持内容完整
SSIS?? 这东西弄这么大量的数据,能行吗?

发表于 2013-4-10 22:37 |显示全部楼层
此文章由 huaxianz 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 huaxianz 所有!转贴必须注明作者、出处和本声明,并保持内容完整
atransformer 发表于 2013-4-10 21:23
SSIS?? 这东西弄这么大量的数据,能行吗?

http://msdn.microsoft.com/en-us/library/dd537533(v=sql.100).aspx
Advertisement
Advertisement

发表于 2013-4-10 22:51 |显示全部楼层
此文章由 oot 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 oot 所有!转贴必须注明作者、出处和本声明,并保持内容完整
LZ  是程序员还是DBA

发表于 2013-4-11 00:27 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
LZ是美女DBA

发表于 2013-4-11 00:30 |显示全部楼层
此文章由 Fernando 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Fernando 所有!转贴必须注明作者、出处和本声明,并保持内容完整
LZ不是说转BI了吗

发表于 2013-4-11 09:47 |显示全部楼层
此文章由 porcorosso 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 porcorosso 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我也想到partition,但是不确定是不是楼主的工作范围

发表于 2013-4-11 09:58 |显示全部楼层
此文章由 IsDonIsGood 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 IsDonIsGood 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Fernando 发表于 2013-4-10 23:30
LZ不是说转BI了吗

data massage 是BI重要的工作之一
2020目标: 活着
Advertisement
Advertisement

发表于 2013-4-11 10:00 |显示全部楼层
此文章由 Fernando 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Fernando 所有!转贴必须注明作者、出处和本声明,并保持内容完整
IsDonIsGood 发表于 2013-4-11 08:58
data massage 是BI重要的工作之一

是的,这个算ETL吧?
好像workflow说做BI分两块,一块是ETL,一块是做展现的
like hell

发表于 2013-4-11 10:04 |显示全部楼层
此文章由 workflow 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 workflow 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Fernando 发表于 2013-4-11 10:00
是的,这个算ETL吧?
好像workflow说做BI分两块,一块是ETL,一块是做展现的 ...

还有一块是做分析的,做model,mining,不过目前90%的BI项目其实就是ETL+report

发表于 2013-4-11 10:09 |显示全部楼层
此文章由 IsDonIsGood 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 IsDonIsGood 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Fernando 发表于 2013-4-11 09:00
是的,这个算ETL吧?
好像workflow说做BI分两块,一块是ETL,一块是做展现的 ...

ETL,Report,Data mining应该分开算吧。
但是个人理解都算BI了
2020目标: 活着

发表于 2013-4-11 10:11 |显示全部楼层
此文章由 findajob 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 findajob 所有!转贴必须注明作者、出处和本声明,并保持内容完整
各位足迹名人都都是做IT的阿 哈哈

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部