• ベストアンサー

ワークテーブルの作成について

noname#140971の回答

noname#140971
noname#140971
回答No.5

/abc__01__x/ Table_A01 Table_B02 /abc__01__y/ Table_A02 Table_B03 データベースをSQL Server や Oracle にしようともディスクアクセスの手続きを残せば高速化にも限界が。 データベースでデータで管理するのは当然だとしても、それを利用しなきゃならない決まりはないでしょう。 ファイルのコードで、ある程度、検索対象が決まるならなば、上述のようなテキストファイルを用意、 ファイルコードのマッチするテーブルデータだけを検索するという絞り込みをすれば高速化します。 もちろん、この場合、検索対象のテーブルはメモリ上に展開します。 経験では、1件90秒を要するような処理も0.001秒まで高速化できます。 私は、単なるデザイナでプログラマではありません。 ですから、<テーブルをメモリ上に展開>は、難しい手法を採用してはいません。 CないしVBでテーブルを巨大構造体に変換しバイナリファイルとして保存するだけです。 BLoad()、BSave() という関数を用意すること位、朝飯前でしょう。 そうすれば、瞬時にメモリ上に必要なテーブルを展開できます。 これで、ディスクアクセスの制約から解放されるという次第です。 どうしても高速化したいのであれば、メモリ上への検索データの展開も選択肢の一つかなと思います。

関連するQ&A

  • MSDEのテーブルはどこに作成されているのでしょうか?

    お世話になります。 Access2000+VB.NETからMSDE2000RelAに移行勉強中です。 SQL Web Data Administratorを使用してテーブルを作成して 入力ツールやその他の画面を.NETで作成しました。 今度サーバーにそのデータを移そうと思ってテーブルのパスを 探したんですがよくわかりません。 そういえば作成するときにもどこに作成するのかというドライブ 名もディレクトリも指定しなかった(聞かれなかった)ように 思います。 拡張子は.dboなのでそれをキーに検索しても引っかかりません。 このデータベースファイルを探してコピーしたいのですが、そも そもデフォルトではどこに作成されるのかご教示いただけませんか? よろしくお願いいたします。

  • VBでMDBテーブルのKEYを指定した参照をしたい

    こんにちわ マスタデータのメンテナンス処理をVBで作ろうと思ってます。 MDBの顧客テーブルがあります。検索画面で顧客コードを入力して顧客テーブルより情報を表示して変更入力し、結果を顧客テーブルに反映更新する処理です。 検索画面で指定されたコードでテーブルを読むにはどのように書いたらよいのでしょうか。 皆様よろしくお願いいたします。

  • ハッシュテーブルの使い方

    こんにちわ。 いまVB.Net2003でプログラミングをしている者です。 ORACLEのあるテーブルの内容をハッシュテーブルに取り込んで, キー検索する処理をしたいのですが, 取り込む際,ハッシュテーブルの「Add」メソッドで 1件ずつ取り込むしかないのでしょうか? たとえばコンボボックスの「DataSource」プロパティに レコードセットを設定するように,一回で設定したいのですが, このような機能があるでしょうか? またハッシュテーブルはキーは1つしか設定できないようですが, このテーブルデータを2つのキーで検索するのはどうすれば 良いでしょうか?

  • PHPでmySQLのテーブルを作成したい

    今PHPの練習をしているのですが、作ろうとしているPHPの、 0:$tbname="データベース名"、とする。 1:データベースにアクセスする 2:アクセスしたデータベースに$tbnameと同じ名前のテーブルがあるかないかをチェック 3:同じ名前のテーブルがあるならそこで終了 4:同じ名前のテーブルがないなら、$tbnameをテーブル名、ID(INT)とNAME(CHAR)をカラム名とするテーブルを新規に作成する という動作をする部分のコードの書き方(どのようなSQL文を使えばいいのか)がわかりません。 どなたかご教示のほど、どうかよろしくお願いします。

    • ベストアンサー
    • PHP
  • ASP.NET テーブル

    ASP.NETを言語はVBで作っています。 そこで、検索についてですが GrieViewではなく、 テーブルで検索結果を表示させるようにした時に 検索結果の量が多いと下まで見る際に 見出しが隠れてしまいます。 スクロールしても見出しは動かずに テーブルのみにスクロール機能を作るには どうしたらいいでしょうか?

  • TruncateしたテーブルへのInsertの遅さが気になる

    こんにちわ。 日次処理として、毎晩ワークテーブルをTruncateしてInsertしなおすというプログラムを数年前に作りました。 このプログラムはVB6、ADO、OLE DBプロバイダはOracleのものを使っています。 他のテーブルからSelectし、それを元に1レコードずつInsert文を作っては実行を繰り返す処理で正直遅いのですが、このプログラムの動作が不思議です。 日々数十万件のInsertを行っているのですが、ログを確認すると最初の2万件のInsertには40分掛かるわりに最後の2万件は5分で終わるのです。 今まで処理時間の遅さが問題になることもなく、バグもなく動いているしであまり気にしていなかったのですが、最近なぜこのような動きになるのか気になってきました。 最初も最後もSelect結果に偏りはなく、Insert文を作る処理に掛かっている時間は同じようなものかと思います。 とすると、遅いのはDBでのInsert処理か?と考えています。 レコード件数が少ないうちのInsertには時間が掛かるものなんでしょうか? だとするとそれはなぜ? 別に処理速度を速くしたいとか言うことではなく、なぜInsertの処理時間にこれほどの差が生じるのかが気になっています。 なおこのテーブルは主キー以外に索引を作っていません。 Insert文を作る際の元になるデータは論理的な単位ごとにSelectします。1回がだいたい数十件ぐらいです。 またその論理的な単位の分のデータをInsertしおわるごとにcommitしています(数十件ごとのcommitになります)。

  • 他のデータベースとのテーブル結合

    いつもお世話になっております。 VB.netでwindowsアプリケーションの作成しているところです。 SQLサーバーのテーブルを参照していますが、テーブルの結合は同じデータベース内にないと結合できないのでしょうか? 'SQL接続処理 Dim strConn As String = "Password='';User ID=sa;Initial Catalog=test;Data Source=server1" と、testというデータベースがありその中に幾つかテーブルがあります。 このtestデータベースにないテーブルが必要になり、aaaデータベース内の テーブルを結合しようとしたのですが、出来ません。 Catalog=test,aaaとやってみたり、SELECT * FROM tbl1,aaa.tbl2などとしてみましたが、遠いようです。 SQLのクエリを使って、テーブルの追加をすると同じデータベース内のテーブルしか出てこないので、出来ないのかなと思っていますがどうでしょうか? わかる方がいましたら教えてください。

  • Accessのテーブルデータ

    Visual Basicで作成したソフトでAccessのテーブルデータを呼び出せるようにしたいです。 mdb形式(Access)のファイルはデータベースエクスプローラに表示できるみたいですが、sqlのデータベースみたいにvisual studio上でデザイナ的に操作できるのでしょうか。 Form上でmdb形式のテーブルデータが扱えればよいのですが、もし必要なコードがあるのでしたら参考程度にアドバイスください。

  • ピボットテーブルの手順

    お願いします。Accessでフォームを作り、 入力していこうとしています。入力フォームは出来ています。 これに、データを入れていってデータベースを作っていこうと思いますが、 データベース(数値)を作った後で、 Excellにエクスポートせずに、 ExcellのΣのような集計をしたいのですが、 ヘルプを見ましたが、よく分からないです。 ピボットテーブルで 数値データの集計を行うデータフィールドだとかが あったんですが、やはり、ピボットテーブルから行うのでしょうか? ピボットテーブルをやろうとしましたが、上手く行きません。 参考本も買おうかなとは思いますが、 その前にと思い質問しています。 どうのような手順で行ったらいいのでしょう。 参考サイトなどがあれば、お願いしたいと思います。 ピボットテーブルでQ&Aを検索しましたが、 私の質問は、初歩的過ぎて、参考になるのはありませんでした。

  • ACCESS97で テーブルの更新について

    ACCESS97で 相談したいことがあります。 定期的にあるテーブルを作成する時、 (1)テーブル作成クエリーを毎回 実施する方法と (2)元々テーブルを作っておいて  毎回、全件削除クエリー、全件追加クエリーを実行する 方法などがあります。  得られる結果は同じです。 この時、毎回テーブル作成クエリーを実施すると ムダにアクセス自体のファイルが大きくなったり データベースが壊れることが多い と聞いたので (2)の方にしたのですが、処理時間が(1)よりも掛かってしまいます。 そこで、上記(1),(2)に関する方法はどちらの方がお勧めでしょうか? ※ 件数は100000件 くらいあります。