2016-08-17 17 views
3

我一直在探索%%physloc%%僞列作爲行標識符的實際用途。不幸的是,我一直無法找到關於%%physloc%%的官方文檔。我需要知道這個價值是否可以改變。在SQL服務器中,一行對於%% physloc %%總是有相同的值嗎?

我做了一些測試,看起來非常靜態。即使我創建了數據庫的備份並在不同的服務器上恢復,每行的%%physloc%%也保持不變。

任何人都可以請解釋這是否可靠和/或提供文檔鏈接?非常感激。

+1

鑑於它指的是一個物理位置,它可能不是很可靠。考慮一下如果數據庫重新分區,優化等情況會發生什麼......記錄物理位置將被移動,您的標識符將不再有效。 –

+1

這就是爲什麼%% physloc %%沒有正式記錄的原因! –

+1

正如其他人指出的那樣,它不能被指望,但這對你來說可能是一個更好的問題。你想用它做什麼?或許還有另一種做你想做的事情的方式?它是以加擾格式的page_id,file_id和slot_id的組合。 http://www.sqlskills.com/blogs/paul/sql-server-2008-new-undocumented-physical-row-locator-function/ – Matt

回答

2

它可以爲移動行任何理由改變:重建,收縮,頁面拆分,重組等

SQL Server不提供行ID。

相關問題