問題タブ [temp-tables]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 複数のセットを返す SQL ストアド プロシージャから単一の結果セットを一時テーブルに保存する方法は?
ストアド プロシージャの結果セットを一時テーブルに格納する必要があります (SQL Server 2000 を使用)。私が読んだことから、これ(不十分に構築された例)は機能するはずです:
しかし、「挿入エラー: 列名または指定された値の数がテーブル定義と一致しません。」
手順を調べると(編集できません)、次のことがわかります。
したがって、実際には、渡されたパラメーターを 2 番目の結果セットとしてエコー バックしています。(理由はわかりません。プロシージャを呼び出すものは、渡されたデータを知っていると思います。)
私のテストでは、SQL が結果セットを結合しようとして失敗したように、2 番目の結果セットが挿入エラーの原因であると考えるようになりました。
一時テーブルに保存された最初の結果セットだけが必要です。どうやってやるの?
編集
CLR ストアド プロシージャを指摘していただきありがとうございます。ただし、その機能は SQL 2005 で導入されました。2000 では機能しません。
他の唯一の答えは「できません」のように見えるので、私にとっては製図板に戻っていると思います.
sql - グローバル一時テーブル削除操作
グローバル一時テーブルがSQLサーバーに存在するかどうかを確認する方法、存在する場合はそのグローバル一時テーブルを削除しますか?
私はこれを実行しようとしています:
...しかし、それは機能していません。
sql - SQL2008のTEMPORARYTABLEとTABLEVARIABLEの違いは何ですか?
違いは何ですか:
と
SQL Server 2008では?
sql-server - SQL Server ストアド プロシージャでの挿入時のテーブル変数のパフォーマンスの低下
ストアド プロシージャでテーブル変数を使用すると、パフォーマンスの問題が発生します。
実際に何が起こるかは次のとおりです。
SELECT は 138 の結果を返しますが、TABLE 変数への挿入には 1min15 かかりますが、同じ SELECT で一時テーブルを使用すると、0 秒かかります。
この動作の原因は何ですか?
sql - ストアドプロシージャ間でデータを渡すために一時テーブルを使用する必要がありますか?
まったく同じ列の結果を返す必要のある検索関数(ストアドプロシージャ)がいくつかあります。
これが採用されたアプローチです。
各ストアドプロシージャの一般的な構造は次のとおりです。
CREATE TABLE #searchTmp (CustomerID uniqueIdentifier)
上記では、spSearchResultsはselectで#searchTmpテーブルを使用します。spSearchResultsは常に同じ列のテーブルを返し、かなりの数の結合がありました。
ただし、一時テーブルを使用するよりも、次のアプローチの方が適しています。
SELECT col1, col2, col3, col4, .... etc, lots of columns ...
FROM table1 LEFT JOIN table 2 ON ... etc, lots of joins ...
WHERE ... DO ACTUAL SEARCH HERE ...
10の異なる検索を行う場合(たとえば、郵便番号に基づいて顧客を検索する、名前に基づいて1つの検索を行うなど)、この2番目のアプローチは、指定された列と結合の重複が多いことを意味します。検索関数を使用するコードが変更されて、新しい列を返す必要がある場合は、10個のストアドプロシージャを更新する必要があります。
私はすべて最初の方法に賛成ですが、2番目の方法がどのような利点をもたらすのか疑問に思いました。パフォーマンス?
または、3番目の方法はありますか?
c# - SQL 一時テーブルを C# ストアド プロシージャに渡す方法
一時テーブルを C# ストアド プロシージャ (SQL 2008) に渡す最良の方法は何ですか? 一時テーブル名をテキストとして渡し、C# から選択を実行するのに行き詰まっていますか?
テーブル値パラメーターを使用したいと思っていましたが、C# sprocs ではサポートされていないようです。
sql - 一時テーブルの寿命
私は次の手順を持っています:
DROP TABLEが呼び出される前に例外が発生した場合はどうなりますか?fooが終了した後もtempTableは存在しますか?
その場合、tempTableがすでに存在するため、fooは次に呼び出されたときに失敗する可能性があります。それはどのように扱われるべきですか。
編集:私はinformix11.5を使用しています
python - Table._prefixesに追加せずにSQLAlchemyでTEMPORARYTABLEを作成できますか?
SQLAlchemyで一時テーブルを作成したいのですが。オブジェクトに対して呼び出すことで句を含むCREATE TABLE
ステートメントを作成できますが、データ操作言語の式にプレフィックスを追加するために使用するよりも洗練されていません。TEMPORARY
table._prefixes.append('TEMPORARY')
Table
table.select().prefix_with()
.prefix_with()
DDLに相当するものはありますか?
database - Oracle10g一時テーブル
ストアドプロシージャで使用される永続テーブルをグローバル一時テーブルに変換しようとしています。これらの永続テーブルの統計を確認しましたが、数千万行のデータがあり、サイズがギガバイト(最大10 GB)の場合はオーダーです。
それで、
になる必要があります
既存の永続テーブルごとに、セッションが終了するまで保持する必要がある行を含む同等のグローバル一時テーブルを作成しています。このグローバル一時テーブルは、永続テーブルの代わりにプロシージャで使用されます。
(EXECUTE IMMEDIATE 'TRUNCATE ...'
開始時、およびINSERT /*+ APPEND */ INTO
後の時点で)
すべての永続テーブルは大きなテーブルスペースに作成されていますBIGTABLESPACE
Oracleのドキュメントには、グローバル一時テーブルがユーザーの一時テーブルスペースに作成されると記載されています(これはと思いますTEMP
)。これに伴う問題は、TEMP表領域が小さく、エクステントが手順中に拡張するのに必要なサイズに拡張するように設定されていないことです。
表TEMP
領域は、データベースの作成中に作成されました
永続テーブル(私が置き換えることを計画している)は、もともとテーブルスペースに作成されましたBIGTABLESPACE
永続テーブルインデックスは、もともとテーブルスペースで作成されましたBIGTABLESPACE
- これらの永続テーブルをグローバル一時テーブルに置き換えることは可能ですか?
- TEMP表領域では、TEMP表領域の拡張で問題が発生します。表領域にグローバル一時テーブルとそのインデックスを作成する方法はあります
BIGTABLESPACE
かBIGINDXSPACE
? TEMP
そうでない場合、テーブルスペースをビッグファイルテーブルスペースのように動作させ、インデックス/テーブルの分離を実現するにはどうすればよいですか?- 2つの
TEMP
bigfileテーブルスペースを作成し、1つにインデックスを作成し、別のテーブルにテーブルを作成できますか?
グローバル一時テーブルを使用したいのですが、プロシージャで処理するデータの量は、グローバル一時テーブルの意図した設計を超えているように見えます。助言がありますか?