タグ付けされた質問 「cross-apply」

2
外部適用と左結合のパフォーマンス
SQL SERVER 2008 R2を使用しています 私はSQLでAPPLYに出会い、多くの場合にクエリの問題を解決する方法が大好きでした。 結果を取得するために2つの左結合を使用していたテーブルの多くは、1つの外部適用を取得できました。 ローカルDBテーブルに少量のデータがあり、展開後、コードは少なくとも20倍のデータで実行されるはずです。 大量のデータの場合、外部適用は2つの左結合条件よりも時間がかかることが心配です。 誰でも正確に適用がどのように機能し、それが非常に大きなデータのパフォーマンスにどのように影響するかを伝えることができますか?可能であれば、n1 ^ 1またはn1 ^ 2に比例するような各テーブルのサイズとの比例関係... n1はテーブル内の行数です1。 以下は、左結合が2つのクエリです。 select EC.*,DPD.* from Table1 eC left join ( select member_id,parent_gid,child_gid,LOB,group_gid,MAX(table2_sid) mdsid from Table2 group by member_id,parent_gid,child_gid,LOB,group_gid ) DPD2 on DPD2.parent_gid = Ec.parent_gid AND DPD2.child_gid = EC.child_gid AND DPD2.member_id = EC.member_id AND DPD2.LOB = EC.default_lob AND …

2
CROSS APPLYは外部結合を生成します
パーティションで異なるSQLカウントへの回答として、Erik Darlingはこのコードを投稿し、以下の不足を回避しましたCOUNT(DISTINCT) OVER ()。 SELECT * FROM #MyTable AS mt CROSS APPLY ( SELECT COUNT(DISTINCT mt2.Col_B) AS dc FROM #MyTable AS mt2 WHERE mt2.Col_A = mt.Col_A -- GROUP BY mt2.Col_A ) AS ca; クエリの使用CROSS APPLY(ないOUTER APPLY)、なぜそこにある外側は代わりの実行計画に参加し、内側が参加? また、group by句のコメントを外すと内部結合が発生するのはなぜですか? データは重要ではないと思いますが、他の質問のkevinwhatによって与えられたデータからコピーします。 create table #MyTable ( Col_A varchar(5), Col_B int ) insert into …

2
差分を生成する最も効率的な方法
SQLサーバーに次のようなテーブルがあります。 Id |Version |Name |date |fieldA |fieldB ..|fieldZ 1 |1 |Foo |20120101|23 | ..|25334123 2 |2 |Foo |20120101|23 |NULL ..|NULL 3 |2 |Bar |20120303|24 |123......|NULL 4 |2 |Bee |20120303|34 |-34......|NULL 入力データとバージョン番号を取得するdiffのストアドプロシージャに取り組んでいます。入力データには、名前からfieldZまでの列があります。ほとんどのフィールド列はNULLであることが期待されています。つまり、通常、各行には最初のいくつかのフィールドのデータのみが含まれ、残りはNULLです。名前、日付、およびバージョンは、テーブルに対する一意の制約を形成します。 特定のバージョンについて、このテーブルに関して入力されたデータを比較する必要があります。各行を比較する必要があります。行は名前、日付、バージョンで識別され、フィールドの列の値を変更すると、比較結果に表示されるようになります。 更新:すべてのフィールドが10進数である必要はありません。それらのいくつかはnvarcharである可能性があります。タイプを変換せずにdiffを実行したいのですが、diff出力はすべてをnvarcharに変換できるため、それは表示目的でのみ使用されるためです。 入力が次のようであり、要求されたバージョンが2であるとします。 Name |date |fieldA |fieldB|..|fieldZ Foo |20120101|25 |NULL |.. |NULL Foo |20120102|26 |27 |.. |NULL Bar |20120303|24 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.