原创 二十二、性能優化

一、數據庫性能瓶頸-IO瓶頸 第一種:磁盤讀IO瓶頸,熱點數據太多,數據庫緩存放不下,每次查詢會產生大量的IO,降低查詢速度 第二種:網絡IO瓶頸,請求的數據太多,網絡帶寬不夠 二、數據庫性能瓶頸-CPU瓶頸 第一種:SQl問題:如SQL中

原创 二十三、數據庫性能優化方案

數據庫的優化方案核心本質有三種:減少數據量、用空間換性能、選擇合適的存儲系統,這也對應了開篇講解的慢的三個原因:數據總量、高負載、查找的時間複雜度。  一、減少數據量 數據序列化存儲、數據歸檔、中間表生成、分庫分表。 二、用空間換性能  

原创 二十、數據庫設計

一、數據庫設計的重要性 在系統研發中,數據庫作爲數據的保存介質,那麼數據庫如何保存業務數據。這就需要開發者來設計 了。當數據庫比較複雜(如數據量大,表較多,業務關係複雜)時: 1、良好的數據庫設計可以: 節省數據的存儲空間 能夠保證數據的完

原创 二十一、執行計劃

一、什麼是執行計劃 用戶提交的 sql 語句,數據庫查詢優化器,經過分析生成多個數據庫可以識別的高效執行查詢方式。然 後優化器會在衆多執行計劃中找出一個資源使用最少,而不是最快的執行方案,給你展示出來,可以是 文本格式,也可以是圖形化的執行

原创 十八、SqlServer事務

一、什麼是事務? 事務是在數據庫上按照一定的邏輯順序執行的任務序列,是恢復和控制併發的基本單位,既可以由用戶手動執行,也可以由某種數據庫程序自動執行。   事務究竟有什麼價值呢? 轉賬: 張三像李四轉賬一萬塊錢; 業務操作: ---存在兩個

原创 十九、SqlServer鎖

一、SqlServer概述 SQL Server 數據庫支持多個用戶同時訪問數據庫,但當用戶同時訪問數據庫時,就會造成併發問題,鎖的機制能很好地解決這個問題,保證數據的完整性和一致性; SQL Server 自帶鎖機制,若是簡單的數據庫訪問

原创 十七、遊標

一、什麼是遊標? 遊標是一種能從包含多個元組的集合中每次讀取一個元組的機制。遊標總是和一段SELECT語句關聯, SELECT語句查詢出的結果集就作爲集合,遊標能每次從該集合中讀取出一個元組進行不同操作。 二、遊標的核心價值 1. 將遊標定

原创 十六、索引

一、索引基本概念 在數據庫中建立索引是爲了加快數據的查詢速度。數據庫中的索引與書籍中的目錄或書後的術語表類 似。在一本書中,利用目錄或術語表可以快速查找所需信息,而無須翻閱整本書。在數據庫中,索引使 對數據的查找不需要對整個表進行掃描,就可

原创 十四、序列

在之前的SQL SERVER版本中,一般採用GUID或者IDENTITY來作爲標示符,但是IDENTITY是一個表 對象,只能保證在一張表裏面的序列,當我們遇到以下情況時: 如上表,我們需要在多表之間,實現ID的一致性,在SQL SER

原创 十五、約束

什麼是約束? SqlServer數據庫爲了保存的數據更具備準確性,一致性,在SqlServer中支持的有約束,有規則來限 定,如果符合規則就可以保存,如果不符合,就不能保存。SQL下有以下幾種約束: 1. 主鍵約束 2. 外鍵約束 3. N

原创 十三、自定義類型

用戶定義數據類型 通俗定義:用戶自己設計並實現的數據類型就稱爲用戶自定義數據類型,即使這些數據類型基於系統數 據類型。也可以理解爲基礎類型的一個延伸。 用戶定義數據類型三要素: 1. 數據類型的名稱 2. 所基於的系統數據類型 3

原创 十一、函數

一、函數 說到函數,首先和存儲過程作個比較吧,兩者有一個共同點都是預編譯優化後存儲在磁盤中,所以效率要比T-SQL高一點點。值得注意的是,存儲過程可以創建或訪問臨時表,而函數不可以;同時函數不可以修改表中的數據,或調用產生副作用的函數,比如

原创 九、T-SQL編程

通過Sql語法來完成業務的處理,執行編寫好的sql語句,就可以完成業務處理。 變量 SQL Server中變量分爲: 局部變量 和 全局變量 局部變量 局部變量是一個能夠擁有特定數據類型的對象,它的作用範圍僅限制在程序內部。在批處理和腳本中

原创 八、SQLServer數據類型

bigint、int、smallint、tinyint 使用整數數據的精確數字數據類型。 若要節省數據庫空間,請使用能夠可靠包含所有可能值的最小數 據類型。 例如,對於一個人的年齡,tinyint 就足夠了,因爲沒人活到 255 歲以上。

原创 六、SQLServer同義詞

一、同義詞定義 同義詞是用來實現下列用途的數據庫對象: 爲可以存在於本地或遠程服務器上的其他數據庫對象(稱爲基對象)提供備用名稱---有點像別名。 提供抽象層以免對客戶端應用程序基對象的名稱或位置進行更改。 二、案例 多個數據庫服務器連