アクティブ/非アクティブからの変更を記録するn履歴エントリを持つテーブルがあります。
[Id] [ParentId] [Date] [Status]
<guid> 0 2013-05-03 15:51:24.810 'Active'
<guid> 0 2013-05-03 15:52:10.773 'Inactive'
<guid> 0 2013-05-03 15:54:26.710 'Active'
<guid> 0 2013-05-03 17:09:27.327 'Inactive'
履歴全体でアイテムが「アクティブ」ステータスにあった期間を特定しようとしています。カーソルを使用して履歴を反復し、それを使用DATEDIFF
して計算すると、ひどいパフォーマンスが得られました。私はSQLCLRの使用を避けようとしていますが、おそらくこれをメモリ内でかなり安価に行うことができます...これを達成するための優れたSQLネイティブでパフォーマンスの高い方法を知っている人はいますか?