最近在某台SQL 2005的機器上啟用Server Side Trace,打算自動分析Trace檔來稽核軌跡紀錄,因為FN_TRACE_GETTABLE函數本身可以以表格式格式傳回Trace檔的內容,我就偷懶直接拿來過濾欄位使用,沒有先匯入資料表後再過濾,結果發生同樣的指令有時候有回傳資料,有時候又沒有資料的情況
同樣讀取4個Trace檔案,假設共20萬筆紀錄,同樣的過濾條件,第一次得花2秒執行完,第二次以後只要花0.5秒就執行完了,第二次比第一次快是因為資料都載入記憶體,可以理解會加快速度,問題是第一次執行回傳16筆資料,第二次之後竟回傳0筆資料,我是見鬼了嗎?如下圖,我用Profiler錄製的內容,總共執行6次