オーバーヘッドは、データがデータベースに存在しない限り、スイッチング、マーシャリングなどとは関係ありません。
私は、T-SQLでは可能な限り多くのストアドプロシージャを実行することはほとんどありませんが、ORMでラップされています。
本当に、それはそこへの答えです。エンティティフレームワーク、NHibernate、Linq to SQLなどを調べてください。ストアドプロシージャを書き留めてください(私は現在ダウンボートを聞くことができます)。C#でそれを行います。
EDIT:追加情報を追加 ストアドプロシージャは(本質的にデータにバインドされた)テストするのが難しく、動的SQLよりもスピードの利点はありません。つまり、ソートやフィルタリングのようなものでは、リレーショナルデータベースはC#よりも効率的です。
しかし、ストアドプロシージャを使用する必要がある場合(時間がある場合)は、できるだけTSQLを使用してください。あなたが実行する必要があるsubstitution量のロジックがある場合、それはベースに設定されていないので、C#を打ち破ってください。
私がこれをやったのは、データベースに余分な日付処理を追加することでした。私が使っていた会社は、5-4-4週ごとの会計カレンダーを使いました。それはSQLではほとんど不可能でした。だから私はそのためにC#を使いました。
ないの質問に関連し批判していないが、しかし、あなたがC#で1000%高速化している場合、それはおそらくあなたの学習曲線上のいくつかの時間を費やす価値があります。 SPは一般に80%のSQLであり、いずれにしても必要です。 – dkretz
@le dorfier - 私は複雑なsqlをとてもうまく使っていますが、宣言、条件文、代入、ループ、カーソルなどを実行するt/sqlの方法ではない...私はそれを頻繁にはしないので、毎回単純なt/sqlの例を検索する必要があります。 – TheSoftwareJedi