Sql-Server
此 SQL 請求何時產生結果?
我正在開發一個 SQL 伺服器數據庫,其中包含訂單和機器,執行這些訂單。一台機器不能同時分配一個以上的活動訂單。換句話說:這個 SQL 請求永遠不會產生結果:
SELECT MachineId FROM Orders WHERE (Orders.Status=1) GROUP BY MachineId HAVING COUNT(Id)>1
我在 Microsoft SQL Server Management Studio 環境中打開了這個 SQL 請求,每次按
F5
時,我確實看不到任何結果。但是,我確信 SQL 查詢在某些時候確實會產生結果,並且我對那些時間以及那個時候該查詢的結果很感興趣。
有人知道我如何找到這個嗎?(“歸檔日誌”標籤只是一個想法)
提前致謝
創建一個日誌表。將您的查詢更改為
INSERT LoggingTable(...) SELECT MachineId, SYSUTCDATETIME() ...
根據需要使用 SQL 代理執行此查詢。(最短間隔為 1 分鐘。)
問題是您只能看到查詢每隔幾分鐘執行的幾毫秒記憶體在的錯誤——這只是系統執行時間的一小部分。如果您將時間跟踪添加到訂單,您可以看到發生的每一個變化。然後,您可以對此歷史記錄執行分析查詢以檢測錯誤。如果需要,可以將歷史記錄複製到單獨的存檔數據庫中,並在不再需要時從操作數據庫中刪除,以保持該數據庫的精簡。