在线现看午夜福利片|女人16久久免费视频|鲁丝片一区鲁丝片二区鲁丝|一区二区三区欧美在线

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

            自動(dòng)輸出SQLServer存儲(chǔ)過程依賴列表到EXCEL文件

            自動(dòng)輸出SQLServer存儲(chǔ)過程依賴列表到EXCEL文件。

              需求

              現(xiàn)在數(shù)據(jù)庫很老很大,表不多,200來個(gè),但數(shù)據(jù)量很大:最大的數(shù)據(jù)表2億6千萬條,每天增加50多w,925個(gè)存儲(chǔ)過程。

              系統(tǒng)大,耦合度很高,牽一發(fā)而動(dòng)全身。人員變動(dòng)頻繁,接手的人員要在修改之前,就得花相當(dāng)長的時(shí)間來分析關(guān)聯(lián)性。

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

              分析

              手工逐個(gè)打開存儲(chǔ)過程去做,對(duì)寫軟件的人來說是很傻的事情,一般重復(fù)性工作,如果預(yù)計(jì)耗時(shí)超過3分鐘,我就會(huì)卷起袖子寫個(gè)代碼。

              工作內(nèi)容有3部分:

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

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

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

              3. 既然是輸出到EXCEL文件,我們就需要找相應(yīng)的代碼。在這個(gè)網(wǎng)站已經(jīng)有很多EXCEL文件生成的代碼了,譬如NPOI。我最后采用了GemBox的,因?yàn)閴蜉p便。本來想用更輕便的MyXLS,但發(fā)現(xiàn)它不支持單背景色。當(dāng)然你也可以用別的,譬如XML格式的EXCEL文件,這是你個(gè)人的選擇了。

              解決了上述的2個(gè)問題,我們就可以大干一場了。我還是采用VS2005+C#2.0,因?yàn)楣具是在用古老的XP搭配VS2005,鬼佬國家要求什么都正版,自然不會(huì)像我們在中國那樣隨便就升級(jí)到2010了。所以只能放棄LINQ,老老實(shí)實(shí)地寫冗余的代碼了。

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

              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 下一頁
              相關(guān)推薦:2010年9月計(jì)算機(jī)等級(jí)考試精華備考資料匯總
                   2010年計(jì)算機(jī)等級(jí)考試二級(jí)公共基礎(chǔ)知識(shí)教程
                   考試吧:2010年計(jì)算機(jī)等考二級(jí)VB預(yù)測題匯總
                   2010年全國計(jì)算機(jī)等級(jí)考試全攻略(一至四級(jí))
            文章搜索
            版權(quán)聲明:如果計(jì)算機(jī)等級(jí)考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系800@exam8.com,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本計(jì)算機(jī)等級(jí)考試網(wǎng)內(nèi)容,請(qǐng)注明出處。