【发布时间】:2015-11-09 12:49:24
【问题描述】:
我正在尝试创建一个副本数据库。请看下面的查询:
SELECT CaptureDate, GenieVRMs.VRM, Camera, ShortName, Latitude, Longitude, ImageBlob, WeedDate, OverviewWeedDate, LastUpdated
FROM (select * from openquery (bof2, 'SELECT CaptureDate, Bof2PlateImage.VRM, Camera, ShortName, Latitude, Longitude, Bof2PlateImage.WeedDate, ''1900-01-01'' AS OverviewWeedDate,
''1900-01-01'' LastUpdated FROM bof2.Bof2PlateImage inner join BOF2.CAMERA on BOF2.Bof2PlateImage.CAMERA = BOF2.CAMERA.URN where rownum<1000000')) As BOF INNER JOIN GenieVRMs
ON BOF.VRM=GenieVRMs.VRM
有 70451258 行。我已经使用 SSIS 传输了 1,000,000 条记录,即上面是 OLEDB 源命令(Oracle 数据库),目标是 SQL 数据库。我计算出,转移这 60,000,000 行大约需要两个月的时间。我尝试了以下 TSQL 查询:
select * into CopyDatabase(
SELECT CaptureDate, GenieVRMs.VRM, Camera, ShortName, Latitude, Longitude, ImageBlob, WeedDate, OverviewWeedDate, LastUpdated
FROM (select * from openquery (bof2, 'SELECT CaptureDate, Bof2PlateImage.VRM, Camera, ShortName, Latitude, Longitude, ImageBlob, Bof2PlateImage.WeedDate, ''1900-01-01'' AS OverviewWeedDate,
''1900-01-01'' LastUpdated FROM bof2.Bof2PlateImage inner join BOF2.CAMERA on BOF2.Bof2PlateImage.CAMERA = BOF2.CAMERA.URN where rownum<1000000')) As BOF INNER JOIN GenieVRMs
ON BOF.VRM=GenieVRMs.VRM
) as CopyDatabase
结果再次表明创建副本数据库需要两个月的时间。
我相信这是由于图像 (ImageBlob)。我可以做些什么来压缩数据传输的图像?
【问题讨论】:
-
如果图像是 jpg 格式,将很难压缩它们。您需要将所有图像导出到外部文件,导出表格,复制图像并单独导入它们
-
@are,谢谢。我没有试过这个。怎么会更快?
标签: sql sql-server oracle tsql ssis