Sql-Server

此 SQL 請求何時產生結果?

  • July 7, 2022

我正在開發一個 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 分鐘。)

問題是您只能看到查詢每隔幾分鐘執行的幾毫秒記憶體在的錯誤——這只是系統執行時間的一小部分。如果您將時間跟踪添加到訂單,您可以看到發生的每一個變化。然後,您可以對此歷史記錄執行分析查詢以檢測錯誤。如果需要,可以將歷史記錄複製到單獨的存檔數據庫中,並在不再需要時從操作數據庫中刪除,以保持該數據庫的精簡。

引用自:https://dba.stackexchange.com/questions/314145