線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1454
推到 Plurk!
推到 Facebook!

請教大家 關於資料轉檔的問題

答題得分者是:pcplayer99
mypigbaby
高階會員


發表:11
回覆:168
積分:155
註冊:2006-07-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-07-13 15:20:17 IP:203.73.xxx.xxx 訂閱
請問大家
豬寶寶最近在寫資料庫轉檔的程式,但是卻被一個問題考倒了~_~

A是MS SQL ,裡面某個TABLE有100萬筆資料(10個欄位)
B是DB2 ,裡面某個TABLE有2000萬筆資料(10個欄位)

現在需要做的是
ATABLE中的某個欄位 需要用ATABLE中的幾個欄位去BTABLE 中串出來後填回去ATABLE
問題來了..
豬寶寶用DELPHI 7 ADO
程式邏輯很簡單
ADOCONNECT1連到MS SQL
ADOCONNECT2連到DB2
AQUERY.SQL.TEXT:='SELECT A1,A2,A3,A4 FROM A ';
AQUERY.OPEN; <--這行就因為資料太多 TIME OUT了
while not aquery.eof do
begin
.
.
.
aquery.next;
end;

請問大家
該如何設定
才能讓程式掃完atable中所有的資料呢?

豬寶寶只有用
adoconnect及adoquery這二個元件做link
還是需要用其他元件來做輔助呢?

謝謝
eaglewolf
資深會員


發表:4
回覆:268
積分:429
註冊:2006-07-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-07-13 15:41:58 IP:211.75.xxx.xxx 訂閱
對A1, A2 , A3 , A4 四個欄位 建立Index
如果你的SQL 語法是
Select A1,A2,A3,A4 From A Where A5 = xxx
則請對A1, A2 , A3 , A4 , A5 五個欄位 建立Index
------
先查HELP
再查GOOGLE
最後才發問

沒人有義務替你解答問題
在標題或文章中標明很急
並不會增加網友回答速度

Developing Tool:
1.Delphi 6
2.Visual Studio 2005
3.Visual Studio 2008
DBMS:
MS-SQL
mypigbaby
高階會員


發表:11
回覆:168
積分:155
註冊:2006-07-20

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-07-13 18:40:56 IP:61.64.xxx.xxx 訂閱
這個的難處是說
a table的100萬筆都是要處理的
所以在SQL 的後面是沒有WHERE的
也因為是要處理100萬筆
才會出現 TIME OUT
===================引 用 eaglewolf 文 章===================
對A1, A2 , A3 , A4 四個欄位 建立Index
如果你的SQL 語法是
Select A1,A2,A3,A4 From A Where A5 = xxx
則請對A1, A2 , A3 , A4 , A5 五個欄位 建立Index
pcplayer99
尊榮會員


發表:146
回覆:790
積分:632
註冊:2003-01-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-07-14 00:08:41 IP:218.18.xxx.xxx 訂閱
如果你用 delphi 的话,当然这里应该用 where

用了 where 可以分段取嘛。假设有一个 integer 的编号的 field 名字叫做 ID

select top 100 * from ATable where ID>=1

处理完这100条,假设最后一条的 iD 是 201,则:

select top 100 * from ATable where ID > 201

如此循环,一直到 select 没有 record 为止。
eaglewolf
資深會員


發表:4
回覆:268
積分:429
註冊:2006-07-06

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-07-14 08:46:03 IP:211.75.xxx.xxx 訂閱
小弟的意思是
你需要建立index
而建立index 的欄位必需要包含 select 的欄位跟where 的欄位

------
先查HELP
再查GOOGLE
最後才發問

沒人有義務替你解答問題
在標題或文章中標明很急
並不會增加網友回答速度

Developing Tool:
1.Delphi 6
2.Visual Studio 2005
3.Visual Studio 2008
DBMS:
MS-SQL
mypigbaby
高階會員


發表:11
回覆:168
積分:155
註冊:2006-07-20

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-07-14 09:37:03 IP:61.64.xxx.xxx 訂閱
謝謝二位的方法
這個問題己經解決
用的方法是pcplayer99所用的WHERE方式
但是也謝謝eaglewolf 提醒需要加INDEX
但是得分只能一位
pcplayer99兄的方法是豬寶寶的解法
所以得分 給pcplayer99
謝謝二位^^"
系統時間:2024-07-02 8:48:30
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!