平臺軟件: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分)
經過上述操做列表能夠看出,地理數據庫後臺前後操做了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)
在本次測試中,當發生鏈接時這四張表的數據以下:
此處,數據庫中插入的記錄爲:
能夠看到類型爲connection
這張表主要記錄鏈接者的信息,在退出後,對應的記錄將會被刪除
數據庫中的記錄爲:
能夠看出四個地理要素都是共享模式(S)
經過registration_id字段,能夠在sde_table_registry中查出初始化了哪些地理要素,在這裏10,23,24,25都是對應的地理要素的ID
從這個表能夠詳細看出加載了哪些圖層。
退出過程:
從退出來看,執行了逆向的刪除操做,從表鎖定記錄中、狀態記錄中、客戶端進程中刪除已經斷開的鏈接信息。
只有SDE_object_ids表中的數據沒有刪除,每次只執行了更新操做。
總結
經過對加載過程與退出過程的瞭解,知道了地理數據庫的幾張表的協同關係以及他們所起的做用。