問題タブ [parameterized]
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-server - SQL Server クエリ プランの違い
パラメーター化されたクエリからパラメーター化されていないクエリに変更したときの、SQL Server でのステートメントの推定クエリ プランの動作を理解するのに苦労しています。
次のクエリがあります。
このクエリは、Linq2SQL 式によって生成され、LINQPad から抽出されます。これにより、(私が知る限り)適切なクエリ プランが生成され、データベース上で約 10 秒で実行されます。ただし、パラメーターの 2 つの使用を正確な値に置き換えると、つまり、2 つの '= @p0' 部分を '= '1fc66e37-6eaf-4032-b374-e7b60fbd25ea' に置き換えます。クエリの実行時間が大幅に長くなりました (60 秒以上、まだ確認していません)。
一見無害に見える置換を実行すると、クエリ プランと実行の効率が大幅に低下するのはなぜでしょうか? 'DBCC FreeProcCache' でプロシージャ キャッシュをクリアして、不適切なプランをキャッシュしていないことを確認しましたが、動作は残ります。
私の本当の問題は、10 秒の実行時間 (少なくともしばらくの間) には耐えられますが、60 秒以上の実行時間には耐えられないことです。私のクエリは(上記のように)Linq2SQLによって生成されるため、データベースで次のように実行されます
これは同じように実行時間が長くなります(これは、パラメーター化されたクエリを使用しているように見えるため、二重に奇妙だと思います.
どのインデックスを作成するかなどについてアドバイスを求めているわけではありません。一見似ているように見える3つのクエリでクエリプランと実行がなぜそれほど異なるのかを理解しようとしているだけです。
編集:パラメータ化されていないクエリとパラメータ化されたクエリの実行計画、および別の GUID を使用してパラメータ化されたクエリの実行計画 ( Heinzが提案) をアップロードしました。
それが私を助けるのに役立つことを願っています:)
sql-server - LINQ-to-SQL デバッグ出力を実行していますか?
Log
DataContext オブジェクトのプロパティを介して LINQ-to-SQL のクエリ出力をログに記録すると、次のような出力が得られます。
Worker
この例では、オフィス内のすべての情報をID = 412
. @p0
ただし、 LINQ が出力するコメント形式のため、この出力は SQL Management Studio クエリ ウィンドウで直接実行されません。
実行できるように、この形式をとるストアド プロシージャがあるかどうかを知っている人はいますか? パラメータ化されたクエリ プロシージャを見ましたが、表示されていないだけかもしれません。手順がない場合は、この形式を「通常の」SQL に変換するパーサーを作成しようとしています...
ありがとう!
ノート:
Help with SQL/LINQ Debugging@p0
に示されているように、これの一番上で定義するだけでよいことはわかっていますが、これらのクエリの多くは20個のパラメーターを使用しているため、コピーと貼り付けの作業が大変になります....
java - 内部クラスでパラメーター化されたジェネリック型を使用するにはどうすればよいですか?
ジェネリック パラメーター化された型を持つ内部クラスを実装しようとしています。
ここに私のコードの短いバージョンがあります:
それは動作しません。T
Eclipse/Javaから、内部クラスの型パラメーターがスーパー クラスのパラメーターを「隠している」という警告が表示されます。これを修正する方法について何か考えはありますか?
編集:問題がある他の内部クラスを追加しました: TreePreOrderIterator
. 、、およびのジェネリック型T
は同じになります。内部クラスは、AVLTree のフィールドにアクセスする必要があります。AVLTree
BinaryNode
TreePreOrderIterator
EDIT2: また、 は競合Iterator
する a にアクセスします。BinaryNode<T>
(注: これは私がクラスで行っているより大きなプロジェクトの一部です。他の情報が必要な場合は、お問い合わせください。)
java - 抽象クラスのパラメーター化されたメソッドでの奇妙な動作
なぜこれがコンパイルエラーになるのか誰か教えてもらえますか? 2 番目の for ループで A にキャストすると、strings() が一般的なオブジェクトのリストを返す理由がわかりません。
これはジェネリックの癖ですか?
ありがとう、クリスチャン
oracle - ORACLE 11gのテーブル値関数?(パラメータ化されたビュー)
私は過去にこれについての議論を見たことがあります。しかし、おそらく10gまたは11g(11gを使用)のどこかで、ORACLEは、データベースにあらゆる種類のユーザー定義タイプや/を散らかす必要なしに、「パラメーター化されたビュー」のより良いサポートを導入したのではないかと思います。またはカーソル定義またはsys_context変数全体。
次のT-SQLの例のように、単に「正しく機能する」ものに対するORACLEの追加サポートを期待しています。
次に、そのように選択します。
.net - 実行時にテーブル名を動的に選択する最良の方法は何ですか?
MySQL Connector / Netを使用していて、実行時に名前が指定されるテーブルに対してクエリを作成したいと思います。
この例は私の頭のてっぺんから外れています(テストされていません):
クエリでテーブル名をパラメータ化できるとは思わないので、 SQLインジェクションの可能性を制限するために、関数パラメータで文字列ではなく列挙型を使用しました。
それは良いアプローチのように思えますか?もっと良い方法はありますか?
java - パラメータ化された引数を受け取るメソッドでワイルドカードを使用できないのはなぜですか?
たとえば、指定されたで表される測定値Measure.doubleValue(Unit<?> unit)
を返すメソッドを使用します。変数を渡すと、まだ非常に不可解な(私にとって)エラーメッセージが表示されます。double
Unit
Unit<?>
The method doubleValue(Unit<capture#27-of ?>) in the type Measurable<capture#27-of ?> is not applicable for the arguments (Unit<capture#28-of ?>)
誰かがそれ#27-of ?
(または他の数字)が何を意味するのかを説明できれば、そしてこれを取り除くためのエレガントな方法があれば幸いです。これまでのところ、を削除し<?>
て呼び出しメソッドを設定すると(したがって、の代わりに@SuppressWarnings("unchecked")
チェックを外して渡す)、すべてが期待どおりに機能しますが、これについては興味があり、警告を抑制することは良い習慣ではないように感じます(isn'空のキャッチブロックのようなものですか?)Unit
Unit<?>
ありがとう!
編集:いくつかのコードを追加します。
(申し訳ありませんが、これはかなり長いですが、それは私が立ち往生していることを詳細に説明しています。)
JSR-275 バージョン0.9.4(最新)を使用しています。
だから...私がこれを書くと(非常にばかげた例):
動作し、「0.0030km」を印刷します。しかし、「メジャーはraw型です。ジェネリック型Measure <Q>への参照はパラメーター化する必要があります」というMeasure
警告が表示されます。「型の安全性:メソッドdoubleValue(Unit)はraw型Measurableに属します。ジェネリック型への参照Measurable <Q>は、パラメータ化する必要がありますmeasure.doubleValue(Unit.valueOf("km"))
。
これらの警告を見て、私はこのように調整できると思いました(最初の行のみ):
そして、割り当ての右側に「タイプの不一致:Measure <capture#1-of?>からMeasure<Length>に変換できません」というエラーメッセージが表示されます。It(Eclipse)は、適切な部分をにキャストすることを提供します(Measure<Length>)
。しかし、右側の部分に警告メッセージが表示されます。「タイプセーフティ:チェックされていないキャストをMeasure <capture#1-of?>からMeasure<Length>に」。提案された修正:@SuppressWarnings
これは避けたいと思います(私が推測するパラノイアの理由で)。
それで、私は戻ってMeasure measure = Measure.valueOf("3 m");
ワイルドカードを付けようとしますMeasure
。明らかに、現時点では「3m」が何を意味するのかわかりません。である可能性がありますがLength
、Mass
またはである可能性もありTime
ます。だから私は得る:
そして、この行には警告やエラーはありません。素晴らしい。しかし、2行目:
次のエラーメッセージが表示されますdoubleValue
: " Measurable <capture#3-of?>型のメソッドdoubleValue(Unit <capture#3-of?>)は、引数(Unit <capture#4-of?>)には適用できません。 ) "。Unit.valueOf("km")
としてキャストすることをお勧めし(Unit<?>)
ます。罰金。今、まったく同じ場所にエラーメッセージが表示されます: " Measurable <capture#3-of?>型のメソッドdoubleValue(Unit <capture#3-of?>)は、引数(Unit <capture#5 -の?>) "。数値が変更されていることに注意してください。これはまったく同じパラメータではありませんが、同様の理由です。次に、それはすでに行われているので、コードに何の変更ももたらさないまったく同じ提案を行います。
それが私を悩ませているものです。それを機能させる唯一の方法は、@SuppressWarnings
それらを無視するか、単に無視するようです。変じゃないですか?
php - パラメータ化されたクエリを実行する方法
[ ステータス: 学習者 ]
パラメータ化されたクエリを実装しようとしていますが、問題があります。Jonathan Sampson は最近、これを行う方法をほのめかしました (#2286115) が、私は彼の提案に正しく従っていません。これが私のスクリプトです
クエリgrade
は ORDER BY 句で正常に機能します。
ありがとう。
sql - vbaを使用したms access 2003のパラメータ化されたクエリ
Ok。データに埋め込まれた二重引用符または単一引用符 (" または ') を処理しないように、パラメーター化されたクエリを使用したいと考えています。
簡単な例として、これのパラメーター化されたバージョンの VBA コードはどのようになりますか?
これをコードから切り取って貼り付けていないので (現在は別のボックスに)、タイプミスがある可能性があります。
この単純な例を理解したら、より複雑なステートメント (複数のパラメーターと結合) に進む必要があります。アドバイスをありがとう
java - Powermockと一緒のJunitパラメーター化テスト-どのように?
私は、PowerMockと一緒にJunit4でパラメーター化されたテストを実行する方法を理解しようとしてきました。問題は、PowerMockを使用するには、テストクラスを次のように装飾する必要があることです。
パラメータ化されたテストを使用するには、装飾する必要があります
私が見ることができることから、それらは相互に排除されているように見えます!?これは本当ですか?これを回避する方法はありますか?PowerMockで実行されているクラス内にパラメーター化されたクラスを作成しようとしました。このようなもの:
しかし、残念ながら、これはあまり効果がありません...ParamTestClass
それでもPowerMockサポートでは動作しません(驚くことではないかもしれませんが)...そして私はアイデアが不足しているので、助けていただければ幸いです!
更新: 将来のグーグルについては、「RunWithなしでPowerMockを使用しますか?」も参照してください。