SQL Server에서 RowID와 유사한 정보 검색
Oracle과 SQL Server의 주요 차이점 중 하나는 오라클의 RowID 개념. 그러나 주로 문서화되지 않고 지원되지 않는 %%physloc%% 가상 열을 통해 SQL Server에서 유사한 정보를 얻을 수 있는 방법이 있습니다.
%%physloc%% 이해
%%physloc%% 가상 열은 다음을 나타내는 이진(8) 값을 반환합니다. 정보:
이진 값을 사람이 읽을 수 있는 값으로 변환 양식
SQL Server는 %%physloc%% 이진 값을 더 읽기 쉬운 형식으로 변환하는 데 유용한 두 가지 기능을 제공합니다.
사용 예
%%physloc%%의 사용을 시연하려면 다음을 고려하세요. 쿼리:
CREATE TABLE T(X INT); INSERT INTO T VALUES(1),(2) SELECT %%physloc%% AS [%%physloc%%], sys.fn_PhysLocFormatter(%%physloc%%) AS [File:Page:Slot] FROM T
출력:
+--------------------+----------------+ | %%physloc%% | File:Page:Slot | +--------------------+----------------+ | 0x2926020001000000 | (1:140841:0) | | 0x2926020001000100 | (1:140841:1) | +--------------------+----------------+
변환 되돌리기
변환 프로세스를 되돌리고 이진(8) 값을 얻으려면 알려진 파일, 페이지 및 슬롯 값에서 다음 코드는 사용됨:
DECLARE @FileId int = 1, @PageId int = 338, @Slot int = 3 SELECT CAST(REVERSE(CAST(@PageId AS BINARY(4))) AS BINARY(4)) + CAST(REVERSE(CAST(@FileId AS BINARY(2))) AS BINARY(2)) + CAST(REVERSE(CAST(@Slot AS BINARY(2))) AS BINARY(2))
이 기능은 유용하지만 SQL Server의 쿼리 최적화 프로세스에 직접적인 영향을 미치지 않습니다.
위 내용은 SQL Server에서 RowID와 유사한 정보를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!