黄色在线观看视频-黄色在线免费看-黄色在线视频免费-黄色在线视频免费看-免费啪啪网-免费啪啪网站

首頁 考試吧論壇 Exam8視線 考試商城 網絡課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載
2011中考 | 2011高考 | 2012考研 | 考研培訓 | 在職研 | 自學考試 | 成人高考 | 法律碩士 | MBA考試
MPA考試 | 中科院
四六級 | 職稱英語 | 商務英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT
新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學習 | 法語 | 德語 | 韓語
計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證
華為認證 | Java認證
公務員 | 報關員 | 銀行從業資格 | 證券從業資格 | 期貨從業資格 | 司法考試 | 法律顧問 | 導游資格
報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師
人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業資格 | 廣告師職業水平
駕駛員 | 網絡編輯
衛生資格 | 執業醫師 | 執業藥師 | 執業護士
會計從業資格考試會計證) | 經濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務師
注冊資產評估師 | 高級會計師 | ACCA | 統計師 | 精算師 | 理財規劃師 | 國際內審師
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監理工程師 | 安全工程師
質量工程師 | 物業管理師 | 招標師 | 結構工程師 | 建筑師 | 房地產估價師 | 土地估價師 | 巖土師
設備監理師 | 房地產經紀人 | 投資項目管理師 | 土地登記代理人 | 環境影響評價師 | 環保工程師
城市規劃師 | 公路監理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師
繽紛校園 | 實用文檔 | 英語學習 | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲

自動輸出SQLServer存儲過程依賴列表到EXCEL文件

自動輸出SQLServer存儲過程依賴列表到EXCEL文件。

  需求

  現在數據庫很老很大,表不多,200來個,但數據量很大:最大的數據表2億6千萬條,每天增加50多w,925個存儲過程。

  系統大,耦合度很高,牽一發而動全身。人員變動頻繁,接手的人員要在修改之前,就得花相當長的時間來分析關聯性。

  所以,印度資深系統分析員要求我在一個EXCEL文件中,把925個存儲過程的所有依賴的對象(表、函數、視圖、存儲過程等等)都列舉出來。

  分析

  手工逐個打開存儲過程去做,對寫軟件的人來說是很傻的事情,一般重復性工作,如果預計耗時超過3分鐘,我就會卷起袖子寫個代碼。

  工作內容有3部分:

  1.獲取所有的存儲過程。我們可以用sysobjects這個系統表,它存儲了所有的表、存儲過程、視圖、函數等。其中存儲過程的xtype是P。另外說一下,如果是CLR存儲過程,類型是PC。

  2. 獲取某存儲過程所依賴的對象,當然是先google了。很久之前我就知道可以用系統存儲過程sp_depends來獲取,不過還是應該看看還有什么更好的辦法。首先我發現這個:http://www.mssqltips.com/tip.asp?tip=1294 。作者研究出4種辦法:INFORMATION_SCHEMA.ROUTINES/sp_depends/syscomments/sp_MSdependencies。其中就有我一直在用的sp_depends。其它辦法有的霸王硬上弓:用charindex來遍歷存儲過程內容,或者用LIKE來判斷。。。。。我服了,寫代碼的風格千差萬別,一些是[Foo],一些是Foo,而且不同的存儲過程名稱可能存在完全給另外一個包含,譬如Foo Foo1 AFoo等。

  看完之后,我還是覺得使用sp_depends相對靠譜。為什么說“相對靠譜”呢?因為我發現它某些情況下也會沒有返回所有依賴的,這應該是SQL Server的bug吧?如果要把所有依賴都找回來,你可以去修改被遺忘的引用存儲過程,隨便加個空行,運行(就是保存結果),你會發現之前沒有顯示的依賴終于出現了。而且,sp_depends會輸出重復的記錄。。。所以我們在代碼中要剔除掉。

  3. 既然是輸出到EXCEL文件,我們就需要找相應的代碼。在這個網站已經有很多EXCEL文件生成的代碼了,譬如NPOI。我最后采用了GemBox的,因為夠輕便。本來想用更輕便的MyXLS,但發現它不支持單背景色。當然你也可以用別的,譬如XML格式的EXCEL文件,這是你個人的選擇了。

  解決了上述的2個問題,我們就可以大干一場了。我還是采用VS2005+C#2.0,因為公司還是在用古老的XP搭配VS2005,鬼佬國家要求什么都正版,自然不會像我們在中國那樣隨便就升級到2010了。所以只能放棄LINQ,老老實實地寫冗余的代碼了。

  以下代碼沒有什么特別的,都是循環所有存儲過程,然后循環每個存儲過程的依賴對象,然后排序輸出(先按照類型,然后按照名稱)。代碼也寫得很quick and dirty,10來分鐘的事情,不要跟代碼規范較真。

  using System;

  using System.Collections.Generic;

  using System.Text;

  using System.IO;

  using System.Drawing;

  using System.Data;

  using System.Data.SqlClient;

  using GemBox.Spreadsheet;

  namespace SQLServerDocumenter

  {

  class Program

  {

  static void Main(string[] args)

  {

  if (args.Length == 0)

  {

  args = new string[3];

  args[0] = "FooDB";

  args[1] = "FooServer";

  args[2] = "FooPassword";

  }

  string db = args[0];

  string dataSource = args.Length > 1 ? args[1] : string.Empty;

  string password = args.Length > 2 ? args[2] : string.Empty;

  ExcelFile xls = new ExcelFile();

  ExcelWorksheet sheet = xls.Worksheets.Add("Dictionary");

  CellStyle typeStyle = new CellStyle(xls);

  typeStyle.FillPattern.SetSolid(Color.Yellow);

  typeStyle.Font.Color = Color.Black;

  typeStyle.Font.Weight = ExcelFont.BoldWeight;

  CellStyle nameStyle = new CellStyle(xls);

  nameStyle.FillPattern.SetSolid(Color.DarkGray);

  nameStyle.Font.Color = Color.Black;

  nameStyle.Font.Weight = ExcelFont.BoldWeight;

  CellStyle itemStyle = new CellStyle(xls);

  itemStyle.FillPattern.SetSolid(Color.LightGray);

  itemStyle.Font.Color = Color.Black;

  itemStyle.Font.Weight = ExcelFont.BoldWeight;

1 2 3 4 下一頁
  相關推薦:2010年9月計算機等級考試精華備考資料匯總
       2010年計算機等級考試二級公共基礎知識教程
       考試吧:2010年計算機等考二級VB預測題匯總
       2010年全國計算機等級考試全攻略(一至四級)
文章搜索
版權聲明:如果計算機等級考試網所轉載內容不慎侵犯了您的權益,請與我們聯系800@exam8.com,我們將會及時處理。如轉載本計算機等級考試網內容,請注明出處。
主站蜘蛛池模板: 亚洲国产第一区二区香蕉 | 欧美一级片黄色片 | 色网站免费 | 欧美黄色高清视频 | 国产欧美国产精品第一区 | 免费看黄色大片 | 国产精品手机在线亚洲 | 免费一级毛片在线观看 | 色婷婷狠狠| 国产日韩欧美在线观看 | 一区二区三区鲁丝不卡麻豆 | 人人射人人舔 | 日本欧美一二三区色视频 | 日韩成人黄色片 | 另类异族videosex太狠了 | 韩国伦理片在线观看 | 最近在线观看免费完整视频 | 欧日韩视频 | 伊人日韩 | 免费一级毛片清高播放 | 亚洲天堂v | 亚洲小视频在线观看 | 黄色天堂在线 | 国产亚洲欧美视频 | 日本高清三区 | 欧美中文在线视频 | 伦理片hd | 国产高清美女一级a毛片久久 | 国产黄色片视频 | 99色网| 欧洲亚洲一区二区三区 | 一级a性色生活片久久毛片 一级a美女毛片 | 国产成人ae在线观看网站站 | 黄色在线免费观看网站 | 亚洲欧美日韩精品高清 | 日日操日日 | 中中文字幕亚州无线码 | 看全色黄大色大片免费久久 | 日日摸夜夜添免费毛片小说 | 日本片免费观看一区二区 | 亚洲成在人色婷婷 |