複数の行を格納するFormsという1つのテーブルがあります。 フォームテーブルには列FormId(uniqueidentifier),FormName(varchar(max)),SubmitedDate(datetime),HasValidFields(bit),IsValidRecord(bit)
があります。 私はエンティティフレームワーク6を使用しています。 apiユーザーは、過去24時間、過去7日間、過去30日間、または過去12ヶ月に基づいてレコードをクエリできます。 私は の要求された日数の列IsValidRecord(bit)
の値を読み取って有効なレコードの戻り値を返し、各クエリについてはHasValidFieldsの列HasValidFields(bit)
を持つレコードの数を返す必要があります。特定の期間のテーブルのdatetime列の場合のレコード数の取得
この表には多くのレコードがあるので、適切な方法であるパフォーマンスを向上させるためには? EFを使用してクエリを実行するか、ビューを使用するか、インデックスを使用する必要がありますか? レコードテーブル:過去7日間の
FormId FormName SubmitedDate HasValidFields IsValidRecord
F3999F60-57B4-494C-868F-331EE5DC6A5F Form1 10/4/16 11:51 1 1
9C23FFC0-F5C9-4E52-B272-34F75D8B4EE6 Form13 10/4/16 11:51 0 1
0658B103-D7B5-4C9E-8209-7BAB82C0E35E Form12 10/4/16 11:51 1 1
2C348300-7FD2-471E-8DA4-D7E0DD4B53EE Form18 10/4/16 11:51 1 0
F3999F60-57B4-494C-868F-331EE5DC6A5F Form13 10/5/16 5:24 1 0
0664C797-0CDF-443C-8ABE-E497E72BE738 Form19 10/5/16 5:24 1 1
F3999F60-57B4-494C-868F-331EE5DC6A5F Form12 10/5/16 5:24 0 1
9C23FFC0-F5C9-4E52-B272-34F75D8B4EE6 Form15 10/5/16 5:24 0 1
DAF34CEB-F7F6-4386-829C-D0D76E4E657D Form16 10/5/16 5:43 1 1
9C23FFC0-F5C9-4E52-B272-34F75D8B4EE6 Form17 10/5/16 5:43 1 1
サンプル出力
日ValidRecords(未上記のサンプル入力に基づいて)
27 - 10月 - 16 12
26-Oct-16 40
25 10月 - 16 12
24 10月 - 16 41
23 10月 - 16 19
の22-oct-16 46
21 10月 - 16 56
最後の時間は、日付の代わりに時間の列になり、年の場合は年の列になります。
開始データの内容がわからない場合、サンプル出力データは役に立ちません。 – Hogan
*これは適切な方法でしょう*私は知らない。 1つは、現在の方法とパフォーマンスがわかりません。適切な方法を求める*はあまりにも広すぎます。 –