だから私は次のクエリをたくさん使います
SELECT [id]
,[date]
,[pcknum]
,[pcktype]
,[pckinfo]
,[pckuptime]
,[pckbyte]
,[pcktext]
FROM [dbo].[RawLog]
where pcktext like '%USER SC%' and pckinfo = 174 and not (pcktext like '%type=Dial%' or pcktext like '%type=VoicemailCollect%')
order by date desc
問題は、テーブルに 1000 万行を超える行が含まれており、トラフの検索に約 20 ~ 40 分かかり、多くの時間を消費することです。
このテーブルは、一部のネットワーク プロトコルのリバース エンジニアリングに使用されるため、直接のユーザー入力によってのみアクセスされます。
検索時間を短縮するために、SQLクエリの保存された状態を作成する方法があるかどうか疑問に思っていましたか?
たとえば、クエリの保存された状態
SELECT [id]
,[date]
,[pcknum]
,[pcktype]
,[pckinfo]
,[pckuptime]
,[pckbyte]
,[pcktext]
FROM [dbo].[RawLog]
where pcktext like '%USER SC%' and pckinfo = 174
後でクエリを使用できますか?
例えば
SELECT [id]
,[date]
,[pcknum]
,[pcktype]
,[pckinfo]
,[pckuptime]
,[pckbyte]
,[pcktext]
FROM table_savedstate_of_RawLog_USERSC
where not (pcktext like '%type=Dial%' or pcktext like '%type=VoicemailCollect%')
order by date desc