毎秒非常に多くのデータを返し、グリッドに表示される SP があります。現在、帯域幅を削減しようとしており、グリッドに現在表示されている列のみを返すことを考えています。
これはもちろん単純化され最小化されていますが、基本的に私が持っていたのは次の SP でした。
SELECT
[Animals].[AnimalID] AS [AnimalID],
[Animals].[name] AS [AnimalName],
[Foods].[DisplayName] AS [Food],
[Animals].[Age] AS [AnimalAge],
[Animals].[AmountOfFood] AS [AmountOfFood]
私が現在試みているのは、現在グリッドに表示されているフィールド (@fields) の名前の TVP を渡し、必要なフィールドのみを返すことです。
SELECT
[Animals].[AnimalID] AS [AnimalID],
[Animals].[name] AS [AnimalName],
CASE
WHEN ('Food' in (select * from @fields))
THEN [Foods].[DisplayName]
END AS [Food],
CASE
WHEN ('AnimalAge' in (select * from @fields))
THEN [Animals].[Age]
END AS [AnimalAge],
CASE
WHEN ('AmountOfFood' in (select * from @fields))
THEN [Animals].[AmountOfFood]
END AS [AmountOfFood]
私が直面している問題は、(予想どおり)SPが〜200ミリ秒から〜1秒かかることです
これを書き直して、私たちを殺さないようにする方法はありますか?
foreach のための私の王国!!!