- - PR -
SQLの性能
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2006-07-07 20:58
SQL Server2000では、TEMPORARY TABLEは作れないと思うんですが、 「SELECT INTO #一時表 」でないと無理ですよね? それとも、CREATE TABLEして、そこへINSERTするんでしょうか? もう少し具体的な方法を教えてもらえませんか? | ||||
|
投稿日時: 2006-07-07 21:15
CREATE TABLE #一時表
( KEY_CD char(10) ) といった具合につくれますが…? | ||||
|
投稿日時: 2006-07-07 21:19
http://www.atmarkit.co.jp/fnetwork/rensai/sql22/sql1.html
| ||||
|
投稿日時: 2006-07-08 10:07
知識不足ですいません。 作ったテーブルへクライアントプログラムでINSERTするんですよね? | ||||
|
投稿日時: 2006-07-08 11:31
毎々お世話になっております。
作るのも INSERT も、同じプログラム上どころか、同じセッションからでないとダメです。 ローカル一時テーブルは、同一セッションでないと見ることができません。 グローバル一時テーブルを使えば、別セッションからでも見れますが、意味がありません。 そんなことより、platini さんのリンク先はご覧になっているのでしょうか...? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-07-08 11:38
見ましたけど、ピンと来ないんです。 何をするストアドを作ればよいのか・・・。 | ||||
|
投稿日時: 2006-07-08 13:01
今回のケースでストアドを使うのであれば、
パラメータ数(ユーザーが選択したコード)が不定のため、 一時テーブルは不向きで、あらかじめパーマネントテーブル用意しておいて ワークテーブルとして使う必要があるかと思います。 ただしワークテーブルの第一キーを一意になるIDを設定(たとえば端末名やユーザーIDなど)して排他する必要があります。(第二キーにユーザーが選択したコード) また、データ残ってしまう場合の後始末などを考えると少々手間がかかり 複雑になりますが、10個(ワークを含め11個?)のテーブルを結合する メインのSQLがキャッシュできるので、そのほうが結果的にはいいかも知れません。 [ メッセージ編集済み 編集者: ハニワ祭り 編集日時 2006-07-08 13:15 ] | ||||
|
投稿日時: 2006-07-08 13:43
やはり、ワークテーブルにINSERT(今回の場合なら7000件)する方が速いということでしょうか? | ||||
