建立資料訪問組件
*SystemDataSqlServerCe:SQL SERVER MOBILE EDITION;
*在擷取資料的時候建議使用DataReader
*SQL 延遲函數:WAITFOR DELAY ‘0:0:03’;
*記得一本書裡說過一個函數執行的過程一般小於一納秒;
*使用sqlconnection預設是代開串連緩衝池的,預設的大小是100;
*conn.close():不是真的銷毀串連而是放回到串連池中;
*列出當前所有串連到該資料庫的使用者串連
SQL CODE:SELECT * FROMmaster ..sysprocesses WHERE hostname<>''
*DataReader使用的時候當讀取輸出參數時得先關閉reader再讀取,不然會出現錯誤,因為reader在讀取的時候會自動關閉;
*資料庫技術的存取效率(msdn文章):Performance Comparison:DataAccess Techniques;
*使用CommandBehavior.CloseConnection的最大缺點是阻礙使用者添加任何異常代碼;
*在一條命令中執行多條命令可以提高效率,減少資料庫連接;
*reader[“ColumName”]:擷取此列的值返回obj類型
*當command返回多個結果集時通過NextResult()到下個結果集;
*MARS:Multiple Active Resultsets,多活動結果集;
*上面那個東西就是對一個連線物件綁定多個Command對象,同時使用,但是必須對連接字串中包含“MultipleActiveResultSets=True”;
*每個請求asp.net都會分配線程池中的一個新的線程用來執行,如果線程池中沒有線程可用就會將新的請求放入隊列中,如果隊列太大伺服器對新的請求就會返回503錯誤,表示伺服器太忙;使用非同步資料層的時候可以對請求效能有所提升,因為當請求未返回的時候當前線程會先釋放回請求線程池,資料取出後再申請新的線程繼續當前的請求;
*可以使用Web設定檔(Web.config)中的HttpRuntime節點來配置Asp.net程式的線程池。通過修改appRequestQueueLimit、minLocalRequestFreeThreads和minFreeThreads屬性,控制在asp.net framework的隊列放棄和輸出錯誤資訊簽可以處理多少請求。
*使用非同步Ado.net的方法時,連接字串必須添加AsynchronousProcessing=true,來啟用資料庫的非同步功能;
*對請求的版面設定非同步才能實現上面的效能提升(
<%@ Page Async="true" AsyncTimeout="8"%>
)
*具體的例子 Page 576;
*executeInParallel:是並發執行還是並存執行,兩者的區別是在微觀上並行也是同時執行;
*替代Page.RegisterAsyncTask():AddOnPreRenderCompleteAsync();
*啟用CLR(通用語言運行時)整合
資料庫命令(查詢分析器):
sp_configure ‘clr enabled’ ,1
RECONFIGURE
無視出現的警告
*使用SQL SERVER資料庫物件 Page 578;
*註冊或者登出程式集和使用者自訂類型:
CREATE ASSEMBLEY DBMovie FROM ‘C:\DBMovie.dll’
DROP Assembly DBMovie
SELECT * FROM sys.assembles \\查看當前資料庫的所有程式集;
CREATE TYPE dbo.DBMovie EXTERNAL NAME DBMmovie.DBMovie
DROP TYPE DBMovie
同理可以自訂建立存數過程
真的很強大,不過暫時不知道這樣用的好處,還需要時間的提煉啊