欧美三区_成人在线免费观看视频_欧美极品少妇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條評論
主站蜘蛛池模板: 午夜小视频在线播放 | 亚洲婷婷在线 | 日韩精品视频在线免费观看 | 拍拍拍无挡免费视频网站 | 亚洲欧洲日本在线 | 欧美视频第二页 | 日韩精品网址 | 久久精品国产一区二区电影 | 正在播放国产无套露脸 | 日本精品久久久久久久久免费 | 一级做a| 欧美午夜艳片欧美精品 | 欧美一级在线播放 | 蜜臀国产 | 国产 日韩 欧美 在线 | 欧美电影精品久久久久 | 亚洲熟妇毛茸茸 | 欧美系列第一页 | 国产成人在线视频播放 | 一区二区三区视频在线观看 | 久久久激情视频 | 91精品影视 | 国产酒店视频 | 草莓视频69 | 国内精品视频区在线2021 | 一级毛片a级 | 黄色a视频 | 无码AV免费一区二区三区A片 | 男生日女生免费视频 | 国外成人免费视频 | 鲁在线视频| 欧美一区二区三区四区视频 | 欧美网站黄 | 久久亚洲一区二区 | 波多野结衣一区二区三区在线观看 | 日本欧美一二三区色视频 | a级片免费观看视频 | 成人免费网站在线观看 | 亚洲色图日韩 | 日本高清动作片www网站免费 | 成人免费黄色网 |