名前 題名 ▼ snail3さん > Syakeさんこんにちは > > 計測条件をもう少し詳しく教えていただけませんか。 > > そもそもTDBXReader自体を知らないじいさんですが > 時間短縮したいと考えています。 > > 私も色々と試す必要があって少し前に時間を計ってみました。 > > 計測したDBは ORACLE と SQLite です。 > > 10000件リード > SQLite 1回目 4Sec 2回目 10sec ←ローカルマシン > SQLite 1回目 17Sec 2回目 30sec ←ローカルマシンADO > Oracle 1回目 17Sec 2回目110sec ←サーバーADO接続 > > 時間は参考程度で見てください。 > > > 計測に利用したSQL文 > ---------------------- > SELECT MHIN_HINCD,MHIN_JITSUCD,MHIN_HINMEI > ,MHIN_CLASSSHIWA,MSWA_MEISYOU > ,MHIN_CLASSHIN,MHBU_MEISYOU > ,MHIN_CLASSTAN,MHIN_TANICD,MHIN_IRISU > ,MHIN_TANKA,MHIN_CTANKA,MHIN_CTANKMI,MHIN_CTANFEN,MHIN_CTANKYOU > ,MHIN_CTANKRI,MHIN_TANKAGEN,MHIN_TANKAURI,MHIN_TANKAHYOU,MHIN_ZAIKANYN > ,MHIN_GENZAIKANYN,MHIN_HACHUTEN,MHIN_HACHUSU,MHIN_HACHU,MHIN_HHINBAN > ,MHIN_STANCD,MHIN_RRANK,MHIN_MRANK,MHIN_BIKOU,MHIN_PASS > ,MHIN_HAISHIYMD,MHIN_HAISHIYMDK,MHIN_SOZAI,MHIN_IRO,MHIN_SYOUSAI > ,MSEI_MNO,MSEI_SERIES,MSEI_KIHONKEI,MSEI_GEN,MSEI_TOUROKU > ,MSEI_SHOUNIN,MSEI_HAIFU,MSEI_OVERSEA,MSEI_INTER,MSEI_OEM > ,MSEI_MIC,MSEI_NANI1,MSEI_NANI2,MSEI_OMOTEA > ,MSEI_DOUSUN,MSEI_SAO,MSEI_BIKOU > ,MBD_WU,MBD_WL,MBD_L,MBD_HU,MBD_HL,MBD_HA > ,MBD_HS,MBD_BIKOU > ,MSB_TYPE,MSB_GEN,MSB_HABA0,MSB_HABA12,MSB_NAGASA > ,MSB_ATSUMI,MSB_HABA,MSB_FUKASA,MSB_PITCH,MSB_FSU > ,MSB_BIKOU > FROM MHIN > LEFT JOIN MSEI ON MHIN_HINCD = MSEI_HINCD > LEFT JOIN MBD ON MHIN_HINCD = MBD_HINCD > LEFT JOIN MSB ON MHIN_HINCD = MSB_HINCD > LEFT JOIN MSWA ON MHIN_CLASSSHIWA = MSWA_CLASSSHIWA > LEFT JOIN MHBU ON MHIN_CLASSHIN = MHBU_CLASSHIN > order by MHIN_HINCD > > 実際の取り出しコーディング(SQLite) > ---------------------------------- > WrkSQLIteTable.MoveFirst; > while WrkSQLIteTable.EOF = False do // UTF8Encode( > begin > WrkListItem := KELV1.LVO.Items.Add; // ←行追加 > Inc( WrkIdx1 ); > WrkListItem.Caption := IntToStr( WrkIdx1 ); // 行タイトル > > WrkStr := WrkSQLIteTable.FieldAsString[1];// .FieldByName[ 'MHIN_HINCD']; > > WrkStr := WrkSQLIteTable.FieldByName[ 'MHIN_HINCD']; > WrkListItem.SubItems.Add( WrkStr ); // 1列目に値設定 > WrkStr := UTF8Decode( WrkSQLIteTable.FieldByName[ 'MHBU_MEISYOU'] ); > WrkListItem.SubItems.Add( WrkStr ); // 2列目に値設定 > WrkStr := UTF8Decode( WrkSQLIteTable.FieldByName[ 'MSWA_MEISYOU'] ); > WrkListItem.SubItems.Add( WrkStr ); // 3列目に値設定 > WrkStr := UTF8Decode( WrkSQLIteTable.FieldByName[ 'MHIN_HINMEI'] ); > WrkListItem.SubItems.Add( WrkStr ); // 4列目に値設定 > > WrkSQLIteTable.Next; > end; > > ちなみに取り出したデータを ListView にセットしない↓の場合は > SQLite ローカルの場合 0.7秒/1万件でした > > while WrkSQLIteTable.EOF = False do // UTF8Encode( > begin > WrkStr := WrkSQLIteTable.FieldByName[ 'MHIN_HINCD']; > Inc( WrkIdx1 ); > WrkSQLIteTable.Next; > end; > GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link