y****w 发帖数: 3747 | 1 源库其实有比较复杂的逻辑,这里简化为一个大表;要把这部分数据copy到另一个数据
库中。怎样做效率最高?linked server已经配置。
bulk insert好像只能导入文件。
有没有什么办法实现其他数据库系统里面的load from cursor?
多谢~ |
B*****g 发帖数: 34098 | 2 直接insert?
【在 y****w 的大作中提到】 : 源库其实有比较复杂的逻辑,这里简化为一个大表;要把这部分数据copy到另一个数据 : 库中。怎样做效率最高?linked server已经配置。 : bulk insert好像只能导入文件。 : 有没有什么办法实现其他数据库系统里面的load from cursor? : 多谢~
|
y****w 发帖数: 3747 | 3 目前就是这样。想看看有没有什么办法优化。
我找了下好像sql server目前还没有load cursor之类的支持。不知道是不是我漏掉了什么重要东西。
【在 B*****g 的大作中提到】 : 直接insert?
|
i****a 发帖数: 36252 | 4 if the two database instances are on different physical servers, backup,
compress, restore is the fastest way.
if you only need one table, and no space to put that table into a separate
database for backup, then use import export wizard (SSIS).
【在 y****w 的大作中提到】 : 源库其实有比较复杂的逻辑,这里简化为一个大表;要把这部分数据copy到另一个数据 : 库中。怎样做效率最高?linked server已经配置。 : bulk insert好像只能导入文件。 : 有没有什么办法实现其他数据库系统里面的load from cursor? : 多谢~
|
y****w 发帖数: 3747 | 5 多谢。ssis是个好思路。
在stored procedure这个层次看来是没啥好办法了。源端的逻辑很复杂,严重怀疑我们
那部分的developer能够在太晚之前封装一个ssis任务出来,恩,其实是一批。
【在 i****a 的大作中提到】 : if the two database instances are on different physical servers, backup, : compress, restore is the fastest way. : if you only need one table, and no space to put that table into a separate : database for backup, then use import export wizard (SSIS).
|
i****a 发帖数: 36252 | 6 I got the impression that this was a one-time thing. so this is a re-
occurring job, or even real time copy?
you can still use SQL or stored procedure to do your selection logic.
【在 y****w 的大作中提到】 : 多谢。ssis是个好思路。 : 在stored procedure这个层次看来是没啥好办法了。源端的逻辑很复杂,严重怀疑我们 : 那部分的developer能够在太晚之前封装一个ssis任务出来,恩,其实是一批。
|
y****w 发帖数: 3747 | 7 this is daily routine they are developing.
仔细想想,用ssis包装未必有性能优势阿。ssis的import能怎么实现?
还是得想办法改改那块的逻辑。
【在 i****a 的大作中提到】 : I got the impression that this was a one-time thing. so this is a re- : occurring job, or even real time copy? : you can still use SQL or stored procedure to do your selection logic.
|
g***l 发帖数: 18555 | 8 SSIS的FAST TABLE LOAD,每天都要COPY肯定是个JOB,要用SSIS,最快是BCP,也要放到SSIS PACKAGE里,但是不会报错。 |
i****a 发帖数: 36252 | 9 if you are copying huge amount of data between physical servers and/or
network daily, explore export-backup-compress-restore-import option.
consider the time it'll take if you let the process to go through a linked
server or SSIS load, both servers will be busy during that whole process.
it all depends on what exactly you are dealing with. my experience is this
method is fastest and easiest to recover from failure when copying large
set of data between west coast and east coast servers. because the biggest
bottleneck is the network connection
【在 y****w 的大作中提到】 : this is daily routine they are developing. : 仔细想想,用ssis包装未必有性能优势阿。ssis的import能怎么实现? : 还是得想办法改改那块的逻辑。
|
y****w 发帖数: 3747 | 10 the problem is that developers don't and can't change in limited time. I'm
curious why they use export-load here but not there:) ok, different guys.
【在 i****a 的大作中提到】 : if you are copying huge amount of data between physical servers and/or : network daily, explore export-backup-compress-restore-import option. : consider the time it'll take if you let the process to go through a linked : server or SSIS load, both servers will be busy during that whole process. : it all depends on what exactly you are dealing with. my experience is this : method is fastest and easiest to recover from failure when copying large : set of data between west coast and east coast servers. because the biggest : bottleneck is the network connection
|
|
|
g***l 发帖数: 18555 | 11 那不是有TEST ENVIRONMENT和PRODUCTION之分么,还应该有QA ENVIRONMENT
m
【在 y****w 的大作中提到】 : the problem is that developers don't and can't change in limited time. I'm : curious why they use export-load here but not there:) ok, different guys.
|
y****w 发帖数: 3747 | 12 我是说不同modules...
【在 g***l 的大作中提到】 : 那不是有TEST ENVIRONMENT和PRODUCTION之分么,还应该有QA ENVIRONMENT : : m
|
m******y 发帖数: 588 | 13 每天源数据库的数据全都改变还是只是一部分。要是全部的话,bcp, compression,
copy, load应该还可以。要是只是部分的话,而且源数据库和另外一个数据库的table
structure一样, 不如set up replication, replication allows object level, 而
且可以加filter, 可以一直传送数据更新,对network bandwidth上也会好一点。 |
y****w 发帖数: 3747 | 14 好吧,需要强调就是源端是经过很复杂计算的,replication不可行。
table
【在 m******y 的大作中提到】 : 每天源数据库的数据全都改变还是只是一部分。要是全部的话,bcp, compression, : copy, load应该还可以。要是只是部分的话,而且源数据库和另外一个数据库的table : structure一样, 不如set up replication, replication allows object level, 而 : 且可以加filter, 可以一直传送数据更新,对network bandwidth上也会好一点。
|
g***l 发帖数: 18555 | 15 计算完了把结果REPLICATION一下不就行了,为什么要去REPLICATION计算过程,搞几个
SUMMARY TABLES,REPLICATION不就解决了
【在 y****w 的大作中提到】 : 好吧,需要强调就是源端是经过很复杂计算的,replication不可行。 : : table
|
y****w 发帖数: 3747 | 16 这些都不是没想到过。
应用是别人的,不可能大动的。就好比我知道怎样设计能更完美,但一个东西已经在那
里了,哪能随便改架构。
其实我就想问下有没有load cursor或类似的高效实现。
【在 g***l 的大作中提到】 : 计算完了把结果REPLICATION一下不就行了,为什么要去REPLICATION计算过程,搞几个 : SUMMARY TABLES,REPLICATION不就解决了
|
g***l 发帖数: 18555 | 17 你就是因为不懂人家的ARCHITECTURE,所以就没法动人的东西,cursor从来都是最慢的
,如果搞不懂COPY的数据是什么,有多少,多久更新一次,更新数量是多少,你怎么可
能设计出高效的COPY方法?谁让你做的,找谁要REQUIREMENT,穷糊弄是不行的,将来出
了问题,有的数据没COPY过去,DEVELOPER添加或者改了数据没告诉你,或者JOB FAILED,
到底是谁的责任,还不都赖在你身上。
【在 y****w 的大作中提到】 : 这些都不是没想到过。 : 应用是别人的,不可能大动的。就好比我知道怎样设计能更完美,但一个东西已经在那 : 里了,哪能随便改架构。 : 其实我就想问下有没有load cursor或类似的高效实现。
|
y****w 发帖数: 3747 | 18 哥们,你也太武断了,别随便说别人不懂:) 这也不是我的任务,我只是能有资格指手画脚一下而已。
很多东西不是技术的,政治,政治。 很多时候一个东西在那里不怎么样,你能说这样设计不好推翻重来么?即使有这个能量有多少时候有这个必要?
另外,谁告诉你load cursor是最慢的?:)你了解过我说的load cursor是什么东西么?我说过作cursor loop insert么? 这不是那种程序里面的cursor循环,而是对表的一种映射而已,或者说只是语法上借用了cursor而已。
来出
FAILED,
【在 g***l 的大作中提到】 : 你就是因为不懂人家的ARCHITECTURE,所以就没法动人的东西,cursor从来都是最慢的 : ,如果搞不懂COPY的数据是什么,有多少,多久更新一次,更新数量是多少,你怎么可 : 能设计出高效的COPY方法?谁让你做的,找谁要REQUIREMENT,穷糊弄是不行的,将来出 : 了问题,有的数据没COPY过去,DEVELOPER添加或者改了数据没告诉你,或者JOB FAILED, : 到底是谁的责任,还不都赖在你身上。
|
g***l 发帖数: 18555 | 19 load cursor是DB2里的,SQL SERVER的CURSOR历来都是最慢的。没有PROJECT
REQUIREMENT,你怎么做也做不对,最后还落埋怨,没有可以,我起草一个扔过去,不
同意你来改,改好了我再做,做的东西都落实在纸上,你不改,我就按这个做,不在
REQUIREMENT上的当然不能做,东西改坏谁负责,如果是一开始就没设计好,以后都是
瞎子点灯,不行就赶紧换工作。LOL
手画脚一下而已。
样设计不好推翻重来么?即使有这个能量有多少时候有这个必要?
么?我说过作cursor loop insert么? 这不是那种程序里面的cursor循环,而是对表的
一种映射而已,或者说只是语法上借用了cursor而已。
【在 y****w 的大作中提到】 : 哥们,你也太武断了,别随便说别人不懂:) 这也不是我的任务,我只是能有资格指手画脚一下而已。 : 很多东西不是技术的,政治,政治。 很多时候一个东西在那里不怎么样,你能说这样设计不好推翻重来么?即使有这个能量有多少时候有这个必要? : 另外,谁告诉你load cursor是最慢的?:)你了解过我说的load cursor是什么东西么?我说过作cursor loop insert么? 这不是那种程序里面的cursor循环,而是对表的一种映射而已,或者说只是语法上借用了cursor而已。 : : 来出 : FAILED,
|
y****w 发帖数: 3747 | 20 好设计好结果,这个道理不用多强调。相信你如果做dba多了,你也许会试图从开始就控制项目的架构,right?这条路n多人其实早就走过来了。
【在 g***l 的大作中提到】 : load cursor是DB2里的,SQL SERVER的CURSOR历来都是最慢的。没有PROJECT : REQUIREMENT,你怎么做也做不对,最后还落埋怨,没有可以,我起草一个扔过去,不 : 同意你来改,改好了我再做,做的东西都落实在纸上,你不改,我就按这个做,不在 : REQUIREMENT上的当然不能做,东西改坏谁负责,如果是一开始就没设计好,以后都是 : 瞎子点灯,不行就赶紧换工作。LOL : : 手画脚一下而已。 : 样设计不好推翻重来么?即使有这个能量有多少时候有这个必要? : 么?我说过作cursor loop insert么? 这不是那种程序里面的cursor循环,而是对表的 : 一种映射而已,或者说只是语法上借用了cursor而已。
|
g***l 发帖数: 18555 | 21 事情虽然很简单,但做的时候往往不是这样的,大家老说COMMUNICATION
COMMUNICATION,但结果都是DEVELOPER做好了,往DBA身上一扔,想改也改不了,一开
始他们讨论PROJECT的时候就要跟上去,DBA也是要多思考的,为什么要这样做,让我做
的话怎么做最EFFICIENT,有时候还要去说服DEVELOPER,主动一些就能避免将来的被动
。有时候没办法就只等着系统慢下来,慢得实在受不了,再推出你的优化方案,不过问
题在什么地方还是要清楚的。
【在 y****w 的大作中提到】 : 好设计好结果,这个道理不用多强调。相信你如果做dba多了,你也许会试图从开始就控制项目的架构,right?这条路n多人其实早就走过来了。
|
y****w 发帖数: 3747 | 22 你好象目前正在热烈思考"怎样做一个好的prod/dev dba",赞激情,这是每个从业者都
应有的思考。
【在 g***l 的大作中提到】 : 事情虽然很简单,但做的时候往往不是这样的,大家老说COMMUNICATION : COMMUNICATION,但结果都是DEVELOPER做好了,往DBA身上一扔,想改也改不了,一开 : 始他们讨论PROJECT的时候就要跟上去,DBA也是要多思考的,为什么要这样做,让我做 : 的话怎么做最EFFICIENT,有时候还要去说服DEVELOPER,主动一些就能避免将来的被动 : 。有时候没办法就只等着系统慢下来,慢得实在受不了,再推出你的优化方案,不过问 : 题在什么地方还是要清楚的。
|