預存資料庫
① 如何構建一個完善的資料庫,如何來處理表與表關系.
SQL Server本身就是一個完善的資料庫,提供可視化編程,後台完成所有拖放處理操作,不管有沒有數據都可以使用,不需要編譯。
一個比較合理的資料庫設計應該考慮數據的交互性和挖掘能力、處理效率以及日誌記錄。
建立數據表,注意以下幾點:
表建立的時候要有主鍵和索引,表與表之間要能使用主鍵相聯系,舉例說在A表裡我做完一次記錄要生成一個單號,B表裡面是依據單號來做下一個流程,而不是依據記錄的每一條數據
取名盡量使用英文+下劃線,SQL Server里對漢字需要轉碼,影響工作效率,按照他的默認編碼方式操作有助於提高數據處理速度
建立數據表的列數不要太多,用編碼規則來建立邏輯
注意欄位存儲空間,限制欄位長度,少用注釋和image
存儲過程盡量簡潔實用
建立視圖,為了別的客戶端使用,盡量建立視圖,做好完整的數據分析,別的介面程序或者客戶端直接就可以拿去使用。做視圖注意幾點:
多個表操作寫在一個視圖里,不要嵌套太多視圖
連接查詢要適當的篩選
跨伺服器操作視圖,要建立伺服器鏈接表,盡量使用內網鏈接,把伺服器鏈接表做成查詢視圖,放在本地伺服器資料庫里,這樣就等同本地操作
視圖之間保留連接欄位作為主要索引
建立計劃作業,有計劃地進行數據同步更新和備份標識工作,注意事項:
備份數據盡量放資料庫里同步復制
計劃任務避開工作高峰期
建立存儲過程,記錄操作日誌,把日誌以數據表的形式存儲,注意事項:
存儲過程對本表操作,不要交互太多表
精簡參數數量,注意參數存儲空間
對記錄修改刪除、更新標記的時候盡量使用時間來索引
建立關系圖,給表與表之間建立直接關系,整理整體挖掘數據性能。
建立計劃更新任務,優化資料庫整體性能。
② SqlServer中的預留資料庫有什麼用
預留資料庫有四個,分別都有自己的用處。
1.master資料庫,庫中保存系統表(sysdatabase表)用於跟蹤整個系統。
2.model資料庫,從名字上看就知道是一個模型副本。它是新建資料庫的模版,例如你如果想新建資料庫,而且想在所有新建資料庫中加入審計表,你只需要修改model資料庫就行,默認建庫過程會按照model庫來。
3.msdb資料庫,它是SQl代理進程保存任意系統任務的地方。例如要調度存儲過程執行一次,那在msdb中就有有一個記錄項。
4.tempdb資料庫,顧名思義就是臨時資料庫,臨時表還有臨時數據都會先經過tempdb,在每次啟動SQLserver的時候,tempdb都會完全重建一次。
③ java相關 怎麼把資料庫的數據預先存入內存
記得之前的遠標老師教過我這一塊,問了一下。是這樣回答的
你創建一個servlet的時候,添加一個init()方法,init方法中執行查詢資料庫的方法,把數據導入內存。
默認情況下servlet被載入是在第一次請求訪問到來得時候,不過可以使用xml文件中配置
<load-on-startup>-1</load-on-startup>
是其在啟動tomcat服務的時候就載入servlet就可以了。
④ java如何將從資料庫取出的數據預先存入到內存
你要實現的這個可能跟SpringMvc的關系不是很大。
你要達到的目的其實就是在jvm啟動的時候把資料庫數據載入一份到內存,一個靜態變數和一個靜態初始化塊就可以搞定你的問題,這兩者都是在類載入的時候初始化一次,像前面回答的一樣,你可以用一個HashMap搞定。稍微具體來說,一個靜態變數
public static final Map<key,value> cache=new HashMap<key,value>()
static {
cache=請求資料庫操作
}
key你自己加,String還是int都行,value是你資料庫的結構,可以寫個實體。獲取的時候直接cache.get(key)就可以了。
⑤ 如何給資料庫添加預存過程
存儲過程是自己創建的
CREATE PROCEDURE XXX
(
@PARAM1 INT,
@PARAM2 CHAR(6) OUTPUT
)
AS
....