問題タブ [sql-function]

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.

0 投票する
2 に答える
1662 参照

postgresql - 関数は STRICT 修飾子なしでより高速に実行されますか?

この質問STRICTに答えているときに、単純な SQL 関数を宣言すると、パフォーマンスが低下することに遭遇しました。

デモンストレーションのために、配列の 2 つの要素を昇順で並べ替える関数の 2 つのバリアントを作成しました。

テスト設定

整数の 10000 のランダムなペアを持つテーブル (

STRICT修飾子なしの関数:

修飾子付きの関数STRICT(それ以外は同一):

結果

私はそれぞれ約20回実行し、最高の結果を得ましたEXPLAIN ANALYZE.

これらは、Debian Squeeze での Postgres 9.0.5 の結果です。8.4でも同様の結果。

すべての NULL 値を使用したテストでは、両方の関数が同じように実行されます: ~37 ミリ秒。

私はいくつかの調査を行い、興味深い落とし穴を見つけました。SQL 関数STRICT を宣言すると、ほとんどの場合、関数のインライン展開が無効になります。詳細については、PostgreSQL オンライン ジャーナルpgsql-performance メーリング リスト、またはPostgres Wikiを参照してください。

しかし、これがどのように説明できるかはよくわかりません。関数をインライン化しないと、この単純なシナリオでパフォーマンスが低下しますか? インデックスなし、ディスク読み取りなし、ソートなし。関数をインライン化することによって合理化された、繰り返しの関数呼び出しによるオーバーヘッドでしょうか?

再テスト

同じテスト、同じハードウェア、Postgres 9.1 . さらに大きな違い:

同じテスト、新しいハードウェア、Postgres 9.6。ギャップはさらに大きくなりますが、次のようになります。

0 投票する
1 に答える
4963 参照

sql - SQL Server 2008 のストアド プロシージャで ntext 型のデータを操作する方法

SQL Server 2008 のストアド プロシージャで ntext データ型を操作する方法を考えていました。テーブルに ntext 型の列があります。その列からデータをフェッチし、データを解析し、変更してから保存する必要があります。上記のすべてのタスクで、ストアド プロシージャ/関数を 1 つ以上使用する必要があります。そのため、ストアド プロシージャ間でのデータの受け渡しも関係します。

0 投票する
2 に答える
157 参照

sql - 関数によるフィールドの更新

ID を取得し、テーブルが存在する場合はテーブルから日付を返し、そうでない場合は現在の日付を返す関数があります。

次のクエリは、テーブルから正しい日付を返します。

次のコードは、レコードを正しく更新します (テーブルの値):

しかし、レコードを更新すると、フィールドに現在の日付が表示されます。

ID パラメータが関数に渡されていないようです。

0 投票する
2 に答える
828 参照

sql-server-2005 - SQLServer機能-重複を防ぐ

SQLServer2005データベースがあります。Table AID列と、Id複数の行にまたがる別の手動列があります。2番目のid列はの形式で'0000000098'あり、文字列である必要があります。データ型を変更できません。

Function A最大ID列値を取得し、それを1つインクリメントして、文字列としてキャストします。

ストアドプロシージャは新しいIDを取得し、このIDを使用していくつかの挿入を実行します。

更新が発生する前に、2つのクライアントがストアドプロシージャを実行して同じIDを取得しないようにするにはどうすればよいですか?procが処理を完了するまで、読み取りからテーブルaをロックできますか、それともより効率的な方法がありますか?

データ型や構造を変更できれば簡単ですが、できません。

0 投票する
1 に答える
736 参照

linq - Linq PredicateBuilder

プログラムを実行すると、次のような厄介なエラーが発生しました。

LINQ to EntitiesはメソッドInt32 ToInteger(System.Object)メソッドを認識しないため、このメソッドをストア式に変換することはできません。

それから、私はSqlFunctions.StringConvertそれを機能させるために使用しましたが、生成されたSQLLINQは評価していませんでした。これはサンプル出力です(1と2ではなく「1」と「2」を比較しています)**

0 投票する
1 に答える
406 参照

nhibernate - CreateAlias はテーブル値関数への結合を生成します

CreateAliasを拡張して、テーブルだけでなくテーブル値関数を操作する方法はありますか? テーブル値関数をベース テーブルに結合したいのですが、これをCriteriaで行うにはどうすればよいですか?

0 投票する
1 に答える
956 参照

linq - Linqの組み込みSQL関数をエンティティに呼び出す方法はありますか

LINQ to Entitiesに組み込まれているSQL関数を呼び出す方法があるかどうか知りたいですか?'CAST'、など'ISNULL'。インターネットで検索し、LINQ to Entitiesでユーザー定義関数を呼び出す方法を知っていますが、組み込み関数を呼び出す方法がわかりません。確かに、一部の組み込み関数は代わりにCLRメソッドを使用できますが、それらを直接呼び出す方法があれば幸いです。

0 投票する
1 に答える
5416 参照

sql - SQL ストアド プロシージャから関数を呼び出す方法

ストアド プロシージャで収集された関数があります。関数はテーブルを返し、別のテーブルに入力する必要があります。たぶん、この質問は少し素朴に思えるかもしれませんが、私はT-SQLの新しい人です。前もって感謝します。

0 投票する
3 に答える
8245 参照

sql-server - 現在の行番号を SQL Server テーブルに挿入する

に次の表がありますSQL Server

新しい行が追加されるたびに、列にinsert電流を流す必要があります。以下を使用しようとしましたが、期待どおりに機能しません。row numberguidfunction

0 投票する
2 に答える
9674 参照

sql - 関数内に含まれるSelectステートメントは、クライアントにデータを返すことができません

T-SQLの専門家、次のプロシージャがこのエラーを返す原因は何ですか?「関数に含まれるSelectステートメントはクライアントにデータを返すことができません。」?

到着時刻から連結された文字列を含むスカラーを返そうとしているだけです。selectステートメントをどこに返しているのかわかりません。