2016-09-14 37 views
2

死鎖發生在我的數據庫中。我使用SQL Server Profiler工具捕獲了Deadlock Graph事件。捕獲事件後,可以將整個信息保存在* .xdl文件中。以下是它捕獲的整個XML的部分片段。我在下面的內容中混淆了私人數據。通過SQL Server死鎖事件文件記錄時間戳記的時區設置

<deadlock-list> 
    <deadlock victim="process6ff035c38"> 
     <process-list> 
      <process id="process6ff035c38" taskpriority="0" logused="0" waitresource="PAGE: 5:1:294008 " waittime="3969" ownerId="4585079252" transactionname="SELECT" lasttranstarted="2016-09-09T16:25:57.270" XDES="0x1b3cefc50" lockMode="S" schedulerid="5" kpid="7676" status="suspended" spid="66" sbid="2" ecid="3" priority="0" trancount="0" lastbatchstarted="2016-09-09T16:25:57.270" lastbatchcompleted="2016-09-09T16:25:57.270" lastattention="1900-01-01T00:00:00.270" clientapp="<garbled>" hostname="<garbled>" hostpid="7932" isolationlevel="read committed (2)" xactid="4585079252" currentdb="5" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128056"> 
       <executionStack> 
        <frame procname="adhoc" line="1" sqlhandle="0x02000000164ea431e4d3c4ea517af1905e1a3ff28dc19d360000000000000000000000000000000000000000"> 

我的簡單問題是關於在這個XML文件中記錄的各種時間戳,例如lasttranstarted(「2016-09-09T16:25:57.270」),lastbatchstarted(「2016-09-09T16:25:57.270」),lastbatchcompleted(「2016-09-09T16:25:57.270」)。這些值是基於安裝了SQL Server的計算機的GMT還是本地時區中的值?

是否可以配置時區SQL Server分析器應該在它生成的事件日誌中使用?我問的原因是因爲這個死鎖對應的一些應用程序日誌也會在應用程序端創建。應用程序日誌文件根據當地時區記錄日誌的時間戳。如果我沒有關於其事件日誌記錄中的時區SQL Server Profiler工具的想法,則很難將兩者關聯起來。

+0

該時區格林威治標準時間。 –

+0

@RohitKumar記錄時間戳中的時區出現在當地時間。如果是格林尼治標準時間,那麼Z後綴將代表零點偏移,這是Utc日期時間的情況。請看我的答案。 – RBT

回答

2

我終於能夠自己弄清楚這一點。這種日期時間字符串2016-09-09T16:25:57.270是本地時區日期時間。您可以在this鏈接上看到各種日期時間字符串格式說明符。我在帖子中詢問的具體格式是ISO 8601格式,使用.Net中的o格式說明符(往返日期/時間模式)表示。這就是它的樣子:

  • 2009-06-15T13:45:30.0000000Z - 該值表示Utc時間。此處Z表示GMT時間的零點偏移。
  • 2016-09-09T16:25:57.270 - 此值(在我的問題中)表示本地時區日期時間。