ARCGIS10.1 GeoDatabase深刻理解:客戶端鏈接與退出地理數據庫時系統表的初始化

平臺軟件:ARCIGS10.1 ,SQL Server2008R2html

目的:瞭解客戶端在鏈接arcgis 空間地理數據庫後,地理數據庫會作些什麼樣的初始化工做java

準備工做:數據庫

1.準備好數據庫日誌文件查看工具,經過日誌查看工具能夠查看對數據庫的詳細加載過程,本文采用ApexSQL Log 2013工具,目前該工具備試用版,挺好用的。這個工具

工具能夠用來作數據庫恢復。測試

2.準備好一份空間數據庫spa

前提條件:日誌

1.本測試沒有包含採用版本機制的狀況orm

2.爲了儘可能保證測試的單純性,數據庫所有放在本地,沒有其餘任何人鏈接。server

3.測試鏈接採用了winform的桌面客戶端,沒有測試WEB端或手機端的鏈接,這個之後再測。htm

步驟:

啓動過程:


1.啓動一個客戶端,並鏈接地理數據庫,經過ApexSQL Log分析數據庫的.ldf文件,得出以下記錄:(客戶端登陸鏈接時間爲15:41分)

image

經過上述操做列表能夠看出,地理數據庫後臺前後操做了SDE_object_ids、SDE_process_information、SDE_state_locks、SDE_table_locks四張表。分別執行Update與Insert操做,這些操做

能夠理解爲:建立鏈接——保存鏈接信息——初始化狀態表——初始化要素加載表

這四張表在ARCGIS的幫助文檔中能夠看到其主要含義:(http://help.arcgis.com/zh-cn/arcgisserver/10.0/help/arcgis_server_java_help/index.html#//002p00000085000000

在本次測試中,當發生鏈接時這四張表的數據以下:

image

此處,數據庫中插入的記錄爲:

image

能夠看到類型爲connection

image

這張表主要記錄鏈接者的信息,在退出後,對應的記錄將會被刪除

image

數據庫中的記錄爲:

image

image

image

能夠看出四個地理要素都是共享模式(S)

經過registration_id字段,能夠在sde_table_registry中查出初始化了哪些地理要素,在這裏10,23,24,25都是對應的地理要素的ID

image

從這個表能夠詳細看出加載了哪些圖層。

退出過程:


image

從退出來看,執行了逆向的刪除操做,從表鎖定記錄中、狀態記錄中、客戶端進程中刪除已經斷開的鏈接信息。

只有SDE_object_ids表中的數據沒有刪除,每次只執行了更新操做。

總結


經過對加載過程與退出過程的瞭解,知道了地理數據庫的幾張表的協同關係以及他們所起的做用。

相關文章
相關標籤/搜索