欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Best Practices Analyzer Tool for Microsoft S

系統 1733 0

from : http://www.cnblogs.com/yxp132/articles/49224.html


Best Practices Analyzer Tool for Microsoft SQL Server 2000 Microsoft SQL Server 開發團隊開發的一個數據庫管理工具,可以讓你檢測設計的數據庫是否遵循 SQL Server 操作和管理的最佳實踐準則。這些準則公認有助于提高數據庫的性能和效率,并讓應用程序易于維護。

?

1,安裝SQL BPA后,啟動界面如下所示:
Best Practices Analyzer Tool for Microsoft SQL Server 2000

2,開始使用SQL BPA最佳實踐分析器

安裝完成后會有一個 SQL Server Best Practices Analyzer User Guide Word 文檔,如何使用講解的很清楚,基本步驟如下:

1 )登錄 SQL BPA

2 )添加分析 / 檢測的 SQL Server 實例

這里需要輸入 SQL Server 實例名稱, Friendly Name 用來和后面創建 Best Practice Group 相關聯(和 SQL Server 實例名稱保持一樣就可以了)。 Database List 的缺省值為 * ,表示包含當前 SQL Server 實例的所有數據庫。但是, BPA 會跳過對‘ master ,? tempdb , msdb ,? pubs , and? northwind ’等數據庫的檢測。

3 )管理 Best Practice Groups (最佳實踐組)

首先需要創建一個 Best Practice Group ,其實是組合了一些 Rules ,并和前面輸入的 SQL Server 實例進行關聯。

4) 分析 SQL Server 實例

將前面創建 Best Practice Group 移到 Best Practice Groups to be Executed 列表中,就可以按照前面定義的 Rules 來執行,并產生 Report 提供改進的建議和準則。

?

3,SQL BPA v1.0包括的Rules

我覺得這個是重點,因為只有明白了這些 SQL Server 操作和管理的最佳實踐準則,才能在設計數據庫和編寫 T-SQL 腳本時,盡量按照這些 Rules 來操作,提高 SQL Server 和應用程序的性能和效率。

其實所有的 Rules 都在這里( English Version file:///C:/Program%20Files/Microsoft%20SQL%20Server%20Best%20Practices%20Analyzer/html/RuleInformation.html#_Rule:_Explicit_Index_Creation ,請注意我是采用默認路徑安裝的 SQL BPA ,如果你改變的安裝路徑,就不在這里了。

?

下面將一些自己比較感興趣的 Rules 整理了一下:

1 )數據庫設計

Rule: Tables without Primary Keys or Unique Constraints

檢測數據庫確保所有的 table 都有定義一個 Primary Key 或一列有 Unique Constraint 的定義。

?

Rule: User Object Naming (用戶對象的命名)

檢測以 sp_, xp_, or fn_ 為前綴命名的用戶對象,避免和 SQL Server 的內置對象發生命名沖突。如果 SQL Server 發現存儲過程以 sp_ 作為前綴,就會先到 master 數據庫中查詢這個存儲過程,影響性能呵。

因此,要符合下列準則:

不要使用 sp_ 前綴來命名用戶定義的存儲過程;

不要使用 xp_ 前綴來命名用戶定義的擴展存儲過程;

不要使用 fn_ 前綴來命名用戶定義的函數。

其實,可以通過使用 usp_, uxp_, or ufn_ 等前綴來命名就可以了, u 表示 user defined

?

2 T-SQL

Rule: Cursor FOR UPDATE column list

檢測 stored procedures, functions, views and triggers FOR UPDATE 子句。當一個 cursor 定義了 FOR UPDATE 子句,則推薦提供明確的 column 列。 FOR UPDATE 用來定義 cursor 內可更新的列。如果提供了 ?OF column_name ,則只允許修改列出的列。如果在沒有指定列的列表,除非指定了 READ_ONLY 并發選項,否則所有列均可更新。 SQL Server 可以基于指定的列優化操作。

?

Rule: Cursor Usage

檢測 stored procedures, functions, views and triggers 中是否正確定義 cursor 可更新性。在如下情況下,會報告失敗:

當一個 cursor 沒有定義 FOR UPDATE 子句,但通過 cursor 來更新;

當一個 cursor 定義了 FOR UPDATE 子句,卻沒有通過 cursor 來更新。

?

不過,一般我們盡量避免使用服務器端 cursor ,因為比較占用服務器內存資源,影響 SQL Server 的性能。可以使用嵌套查詢或者 WHILE 語句,來代替 cursor 。即使使用 cursor ,也應注意定義 cursor 的一些選項,如 FAST_FORWARD

?

Rule: Explicit Index Creation

推薦使用 CLUSTERED or NONCLUSTERED 顯式創建 index

?

Rule: INSERT Column List

要求在使用 INSERT 時,明確提供 column 列表,提高代碼的可維護性。

?

Rule: Nested Triggers Configuration

檢測由于 nested triggers 的配置問題,未觸發的 triggers 。這個比較少有,直接貼過來了。

When 'nested triggers' configuration option is set to 0, any AFTER trigger defined on tables/views updated inside an INSTEAD OF trigger is not fired. This rule:

1) Checks the value of the configuration option and exits if it is not 0.

2) Scans all INSTEAD OF triggers and generates a list of tables/view being target of DML from within a trigger.

3) Checks whether any of the identified DML targets have AFTER triggers defined on them.

4) Reports non-compliance for any such case.

?

Rule: NOCOUNT Option in Triggers

檢測 triggers ,確保在 triggers 前面寫有 SET NOCOUNT ON

SQL Server 在每一條語句執行完成后,都會發送 ’done’ 信息。這些信息會導致觸發 trigger 的應用程序可能產生一些意外的后果。因此,在 trigger 前面加上 SET NOCOUNT ON 是一個良好的設計習慣。

?

當然,在 stored procedures, functions 中都推薦在前面添加 SET NOCOUNT ON 。這樣一系列 SQL 命令執行影響的行數不會傳回客戶端,減少網絡流量,提高性能。

?

Rule: NULL Comparisons

檢測 stored procedures, functions, views and triggers 中涉及 NULL 常量的等于或不等于比較。推薦設置 ANSI_NULLS ON ,并且使用 IS 關鍵字來呵 NULL 常量進行比較。

?

Rule: Results in Triggers

檢測 triggers ,確保 triggers 沒有數據返回給調用者。因此,不推薦在 triggers 中使用如下語句:

PRINT statement

SELECT (without assignment or INTO clause)

FETCH (without assignment)

?

Rule: Scoping of Transactions

檢測 stored procedures and triggers 中的 transaction 范圍,推薦 transaction 的開始和結束在同一 T-SQL 結構內。

?

一般而言,盡量縮小 transaction 的范圍,避免占用大量的資源,影響 SQL Server 性能。

?

Rule: SELECT *

檢測 stored procedures, functions, views and triggers SELECT * 的使用。盡管 SELECT *? 比較方便,但是會降低程序的可維護性。對 table or view 的改變,可能會引起錯誤或性能的改變。

因此,推薦在 SELECT 語句后面顯式指定字段列表。

?

Rule: SET Options

檢測 stored procedures and triggers 中如下 SET 語句的使用。

推薦如下選項設置為 ON:

  • ANSI_NULLS
  • ANSI_PADDING
  • ANSI_WARNINGS
  • ARITHABORT
  • CONCAT_NULL_YIELDS_NULL
  • QUOTED_IDENTIFIER

推薦如下選項設置為 OFF:

  • NUMERIC_ROUNDABOUT

Rule: Temp Table Usage

檢測 stored procedures and triggers 中臨時表的使用。當創建臨時表時,需要創建 CREATE INDEX ,并且在使用完成后,需要釋放該臨時表。

因為臨時表會產生大量的磁盤 IO 操作,因此推薦采用 TABLE 變量替換臨時表的使用。

不過,由于并發執行的限制和統計信息的維護,當有大量的數據插入臨時表時,仍推薦采用臨時表。

?

Rule: TOP without ORDER BY

檢測 stored procedures, functions, views and triggers 中缺少 ORDER BY TOP 語句。在使用 TOP 語句時,推薦指定排序條件。否則,產生的結果將于 SQL 執行計劃相關而導致異常的行為。

?

Rule: Use of Schema Qualified Tables/Views

檢測 stored procedures, functions, views and triggers 中引用 tables and views 時,擁護者 owner 是否指定。雖然在 SQL Server 中引用特定的對象時,可以不指定 server, database and owner(schema) ,也就是說不用 server_name.database_name.owner_name.*** 這么麻煩,但是 SQL Server 推薦當在 stored procedure, function, view or trigger 中引用 table or view 時,最好指定 table or view 的擁有者。

?

SQL Server 查詢未指定 owner table/view 對象時,首先查詢缺省的 owner ,然后才是 dbo 。這樣,會導致 SQL Server 產品額外的運行成本。通過指定 owner ,可以改進 SQL Server 的性能。(第一次聽到這種說法)

?

4,參考文檔及相關資源

工具下載 URL:

http://www.microsoft.com/downloads/details.aspx?FamilyId=B352EB1F-D3CA-44EE-893E-9E07339C1F22&displaylang=en

視頻下載 URL:

http://www.microsoft.com/china/msdn/events/webcasts/shared/msdntv/episode.aspx?xml=/china/msdn/events/webcasts/msdntv/20040610sqlserverck/manifest.xml

Best Practices Analyzer Tool for Microsoft SQL Server 2000


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 无码日本精品久久久久久 | 国产碰碰 | 国产精品乱码在线观看 | jizz.日本| 六月婷婷六月天 | 久草免费资源视频 | 亚洲播播播 | 色婷婷综合久久久中文一区二区 | 一级欧美在线的视频 | 一区二区三区波多野结衣 | 特级毛片8级毛片免费观看 亚洲精品不卡 | 一级欧美日韩 | 国产主播福利精品一区二区 | xxxxhdvideosex| 国产精品久久婷婷六月丁香 | 国产精品天天天天影视 | 91短视频版在线观看www免费 | 奇米色777欧美一区二区 | 狠狠久| 国产一级做人爱c黑人版 | 一区二区三区免费网站 | 九色福利 | 亚洲欧美日韩一级特黄在线 | 国产伦精品一区二区三区精品视频 | 久久综合久久精品 | 黄视频免费在线观看 | 激情五月色播五月 | 拍真实国产伦偷精品 | 99久久精品国产毛片 | 亚洲伦理影院 | 九九久久精品 | 91视频一区 | 亚洲午夜av| 国产成人综合在线观看 | 亚洲欧美视频一区 | a级片在线免费播放 | 国产a久久精品一区二区三区 | 欧美午夜在线 | 亚洲国产精品久久久久秋霞蜜臀 | 91精品国产露脸在线观看 | 色屁屁www影院免费观看软件 |