資料庫靜態數據
① 動態資料庫的什麼是靜態資料庫
在靜態庫情況下,函數和數據被編譯進一個二進制文件(通常擴展名為回*.LIB),Visual
C++的編譯器在處答理程序代碼時將從靜態庫中恢復這些函數和數據並把他們和應用程序中的其他模塊組合在一起生成可執行文件。這個過程稱為靜態鏈接,此時因為應用程序所需的全部內容都是從庫中復制了出來,所以靜態庫本身並不需要與可執行文件一起發行。
靜態連接庫是一種用戶模塊它提供了函數的完整的目標代碼(在靜態庫*.lib中)如果程序調用中的靜態連接庫的函數,則在進行連接時連接程序將中所包含的該函數的代碼復制到運行文件中.
動態連接庫也包含了其所提供的函數的目標代碼,但是在程序連接動態連接庫中的函數時,連接程序並不攔包含在動態連接庫中的函數的目標代碼復制到運行文件而只是簡單記錄了函數的位置信息。
有了這些信息程序在執行時就可找到目標代碼!
② 什麼是靜態數據,什麼是動態數據
動態數據是指在系統應用中隨時間變化而改變的數據,如庫存數據等。動態數據的准備和系統切換的時間有直接關系。
動態數據是常常變化,直接反映事務過程的數據,比如,網站訪問量、在線人數、日銷售額等等。
靜態數據是指在運行過程中主要作為控制或參考用的數據,它們在很長的一段時間內不會變化,一般不隨運行而變。動態數據包括所有在運行中發生變化的數據以及在運行中需要輸入、輸出的數據及在連機操作中要改變的數據。
(2)資料庫靜態數據擴展閱讀
內部生成數據,指向用戶或調試人員提供的內部生成數據。數據約定說明對數據要求的制約,應列出對進一步擴充或使用方面的考慮而提出的對數據要求的限制(容量、文件、記錄、臨界性和數據元素最大值)。
在計算機系統中,各種字母、數字元號的組合、語音、圖形、圖像等統稱為數據,數據經過加工後就成為信息。
在計算機科學中,數據是指所有能輸入到計算機並被計算機程序處理的符號的介質的總稱,是用於輸入電子計算機進行處理,具有一定意義的數字、字母、符號和模擬量等的通稱。是組成地理信息系統的最基本要素,種類很多。
參考資料來源:網路-靜態數據
參考資料來源:網路-動態數據
③ 資料庫讀取類是靜態方法好還是實例化好
頁面靜態化 + ajax + 緩存復 + 資料庫制連接池.
常更新的數據可以使用非同步方式從緩存獲取, 根據業務需求設定緩存策略. 資料庫連接池應該是必須要有的吧.
如果跳出開發的角度, 從運維的角度來看, 可選的技術會更多, 例如反向代理, 負載均衡, 資料庫優化等等.
額.自說自話了,
"網站靜態化和動態資料庫查詢的問題,就是使用資料庫連接池技術好還是使用頁面靜態化好",
這兩種技術不沖突, "靜態化"屬於內容緩存范疇,對資料庫性能沒有直接影響(如果你的頁面數據沒有直接從資料庫獲取). 而"連接池"屬於資料庫優化方面的. 對"資料庫並發"有直接的而且較大的影響.
④ 如何維護資料庫中的靜態表
我認為在任何應用程序、系統的資料庫中或多或少都會有一些靜態表用來存放系統中一些默認的值,比如說界面上的一些field信息、一些數據模板、界面上的選項設置等等。我們不可能把這些東西都hard code到代碼中去,所以必然需要這些靜態的數據表來存放這些信息。可能你會覺得手動去維護這些靜態表就挺好,但是我認為在任何情況下我們都不應該手動的去修改資料庫中的數據,這樣可能會導致臟數據或者其他未知問題。設想一下,如果你的系統有開發和測試兩個資料庫,又同時需要支持SQL-SERVER和ORACLE兩種資料庫,那麼你就需要維護四個資料庫,當資料庫數量增加手動維護明顯是不可能的一件事情。
我認為可以通過將靜態數據表中的數據保存在一些文件中,然後通過一些工具將這些文件導入到各個資料庫中,同時還可以將這些文件放在版本控制庫里,這樣就可以追蹤到每一個對靜態表的修改。我設想了一下這個簡單的模型。
如上圖所示,更新工具去讀配置文件,然後根據配置文件將靜態表文件中的數據更新到指定的一些資料庫中去。靜態表文件中包含了靜態表的一些基本數據,資料庫配置包含了一些資料庫的鏈接信息。而配置文件則是關鍵,它包含了一些靜態表文件和資料庫配置文件,同時也應該包含靜態表文件與資料庫中表的映射關系。
我覺得通過這種方式可以比較好的控制資料庫中靜態表,如果是應用程序,在部署的時候只要配置一些資料庫和資料庫文件,應該就能很快的將靜態數據導入資料庫表。
⑤ 如何維護資料庫中的靜態表麻煩告訴我
我們不可能把這些東西都hard code到代碼中去,所以必然需要這些靜態的數據表來存放這些信息。可能你會覺得手動去維護這些靜態表就挺好,但是我認為在任何情況下我們都不應該手動的去修改資料庫中的數據,這樣可能會導致臟數據或者其他未知問題。設想一下,如果你的系統有開發和測試兩個資料庫,又同時需要支持SQL-SERVER和ORACLE兩種資料庫,那麼你就需要維護四個資料庫,當資料庫數量增加手動維護明顯是不可能的一件事情。
我認為可以通過將靜態數據表中的數據保存在一些文件中,然後通過一些工具將這些文件導入到各個資料庫中,同時還可以將這些文件放在版本控制庫里,這樣就可以追蹤到每一個對靜態表的修改。我設想了一下這個簡單的模型。
如上圖所示,更新工具去讀配置文件,然後根據配置文件將靜態表文件中的數據更新到指定的一些資料庫中去。靜態表文件中包含了靜態表的一些基本數據,資料庫配置包含了一些資料庫的鏈接信息。而配置文件則是關鍵,它包含了一些靜態表文件和資料庫配置文件,同時也應該包含靜態表文件與資料庫中表的映射關系。
⑥ 靜態的SQL 和動態的SQL有什麼區別
表 1. 靜態 SQL 和動態 SQL 的比較
靜態 SQL
動態 SQL
SQL 語句直接嵌入到宿主編程語言,程序需要預編譯處理這些嵌入的 SQL 語句
SQL 語句一般作為宿主語言的變數出現。嵌入式動態 SQL 應用需要預編譯,非嵌入式 SQL 應用則無需預編譯
SQL 語句在程序被編譯時已知,涉及的資料庫對象已存在
SQL 語句在程序被編譯時未知,涉及的資料庫對象可以是運行時才創建的
SQL 語句在程序運行前被編譯
SQL 語句在程序運行時被編譯
SQL 語句的編譯結果在 DB2 的目錄 (catalog) 中持久化保存
SQL 語句的編譯結果緩存在資料庫的內存里
運行時僅讀取目錄 (catalog)
運行時編譯 SQL 語句需對目錄 (catalog) 加鎖
SQL 語句的優化是根據編譯時的資料庫統計信息進行的,不能完全反映運行時的情況
SQL 語句的優化是根運行時的資料庫統計信息進行的
對 SQL 語句所訪問的數據對象的許可權檢查是在綁定時進行的
對 SQL 語句所訪問的數據對象的許可權檢查是在運行時進行的
許可權控制的粒度是包(package,一組 SQL 語句的編譯結果),用戶僅需要訪問包的許可權
許可權控制的粒度是 SQL 語句,用戶需要具有訪問 SQL 語句中每個數據對象的許可權
如果 SQL 語句中的對象被修改,如 DDL 執行,整個包都需要重新綁定
當 SQL 語句中的對象被修改時,僅執行過的語句在下次運行時需要重新編譯
⑦ 如何在靜態網頁中添加資料庫
靜態網頁加入數據連接,等於直接把資料庫連接信息暴露了,需要用 ajax json 非同步拋送表單,然後等待返回,因為靜態網頁並沒有伺服器端的程序在執行; 僅僅是HTML源代碼在客戶端執行;若能夠使用資料庫的話, 豈不是能夠對客戶端計算機的資料庫進行修改了嗎。
⑧ 從資料庫讀取的數據,怎樣才能生成靜態頁面
1. 設定要生成靜態頁面的模板頁,頁內包含需要替換的標簽--自己定義好即可,方便維護。如文件為static.htm,標簽為#title# 表示標題 #content# 表示內容 #creator# 創建人 #createdate# 創建日期2. 從資料庫中讀取數據,替換模板頁的標簽,生成文件。如下string filePath = Server.Mappath("/")+\\article\\; string tmpTemplate = ""; FileInfo fi=new FileInfo(Server.Mappath("/")+"static.htm") System.IO.StreamReader sr= fi.OpenText();
tmpTemplate = sr.ReadToEnd(); /* 讀取模板文件到字元串變數*/
sr.Close(); string articleContent=""; sql = "select id,title,content,creator,createdate from table1" DataView objDv = SqlHelper.QueryView(sql) /*可參考微軟的SqlHelper*/ for(int i=0;i<objDv.Count;i++) { articleContent=""; /* 替換所有標簽*/ articleContent = tmpTemplate.Replace("#title#",objDv[i]["title"].ToString()); .............. //寫入文件 StreamWriter sw = new System.IO.StreamWriter(filePath+objDv[i]["id"].ToString()+".htm");
sw.Write();
sw.Flush();
sw.Close(); }StreamWriter sw = new
⑨ 什麼叫動態資料庫,什麼叫靜態資料庫
動態資料庫是一個能夠被應用程序和其它的DLL調用的過程和函數的集合體,它裡麵包含的是公共代碼或資源。動態資料庫提供了一種方法,使進程可以調用不屬於其可執行代碼的函數。
靜態數據
庫是一種用戶模塊。它提供了函數的完整的目標代碼。在靜態庫情況下,函數和數據被編譯進一個二進制文件,Visual
C++的編譯器在處理程序代碼時,將從靜態庫中恢復這些函數和數據並把他們和應用程序中的其他模塊組合在一起生成可執行文件。
(9)資料庫靜態數據擴展閱讀:
動態裝入動態資料庫,要用到Windows的三個API函數,即Loadlibrary、Freelibrary和GetprocAddress函數。
1、Loadlibrary函數調用格式為:function
loadlobrary
(DdfileName:Pchar):
THandle:。
2、、當不再需要一個動態資料庫時,應調用FreeLibrary函數將其釋放。
FreeLibrary函數調用格式:procere
FreeLibrary
(Libmole:THandle)。
3、用GetprocAddress函數把動態資料庫中函數的地址傳遞給程序中某個函數變數,再用該變數實現動態資料庫函數的調用。
GetprocAddress函數格式:function
GetprocAddress
(Libmole:THandle:procname:pchar):TFarProc:。
參考資料來源:網路-動態資料庫
⑩ 什麼是對資料庫系統的靜態動態的描述
【 數據結構】是對數據系統的靜態物性的描述,【數據操作 】是以資料庫系統的動態特性的描述。