SQL ServerにOracleサーバーへのリンクサーバーがセットアップされています。
グリッドビューにデータを入力する必要があります。しかし、データソースでパラメーターを使用すると、クエリが非常に遅くなることがわかりました。ただし、パラメーターの代わりに値をハードコーディングすると、クエリははるかに高速になります。
パラメーターは、自動ポストバックを使用してテキスト ボックス コントロールから設定されます。
私はそれを次のようにコーディングしました...
<asp:SqlDataSource ID="dsRepairs" runat="server"
SelectCommand="SELECT REPAIR_NO + '-' + LINE_NO AS SELECT_OPTION, CUSTOMER_NO, DATE_ADDED, YOUR_REFERENCE, PART_NO, DESCRIPTION, SERIAL_NO, REPAIR_STATUS
FROM TEST..INFOVIEW.CRO_LINES
WHERE CUSTOMER_NO = @CUSTOMER_NO;" ConnectionString="<%$ ConnectionStrings:ConnectionString %>">
<SelectParameters>
<asp:ControlParameter Name="CUSTOMER_NO" ControlID="txtAccountNo" PropertyName="Text" DbType="String" Direction="Input" />
</SelectParameters>
</asp:SqlDataSource>
余分な時間はデータ型の変換によるものだと思いますが、これを高速化する方法を知りたいです。パラメータ メソッドを使用している場合、ページにデータが読み込まれるまで 15 秒以上待つことはできません。
のオプションしかないようですがDBType="String"
、オラクルのソーステーブルのフィールドタイプはvarchar(20)
.
これを改善する方法はありますか?データソースの設定方法を制御することはできません。SQL Server を介してリンク サーバーを操作する必要がありますが、これを除けば、適切なタイミングでデータを返すことは許容範囲を超えています。
さらに情報を提供する必要がある場合はお知らせください。