作者: admin

  • SQL Server 2005 檢視表的不思議現象

     春天到了~俗話說「春天後母臉 — 說變就變」,那系統可以說是女人心 — 永遠都有可愛又難以捉模的時刻~ 咳咳咳…扯遠了…回到正題 ^^”。由於最近公司的 DB Server 進行升級,系統也將原本的 SQL 2000 升級至 2005,步驟在一般不過了:
    安裝 => 設定 => 升級 SP2 => 完成把原本的 MDF 掛載上去後,修改連線密碼,一切正常!!上線~隔天不思議的情形就發生了…網頁上顯示的資料居然都是最舊的!! What’s up !?!?

    將頁面上使用的 view 表以 SSMS 開啟,發現排序的指令沒有生效
    程式內使用的 SQL String 為 “Select * from vwTest”
    而 vwTest 內則有下 order by [dtDate] 的語法,恩恩~怎麼看都沒錯啊~
    切到檢視表設計下看…排序以及資料都是正常的!!好…看來是檢視表內的 order 語法無法在讀取檢視表 vwTest 的第一時間生效了…馬上進行 Troble Shooting!!

    在 Google 了一下之後,首先看到了微軟的 KB,裡面說到其症頭為 —

    The SELECT statement uses the TOP (100) PERCENT expression.
    ==> vwTest裡面的確有用到 TOP (100) PERCENT 的選取方式


    The SELECT statement uses the ORDER BY clause.
    ==> 也有使用 order 排序

    解決方式 —
    936305 Cumulative update package 2 for SQL Server 2005 Service Pack 2 is available

    安裝時明明有升級到 SQL 2005 SP2 … 現象卻依然持續的發生,只好繼續找了 T_T
    最後在國外的 SQL SERVER 為主題的 BLOG 中找到了一篇文章說明了因應的對策

    • 在Select語法的部分,將原本的 Select TOP (100) PERCENT 改為 Select TOP 2147483647
    • 有找到另外一種解法,將 Select 語法改為 Select TOP (99.999999999999)也是可行的,注意~小數點後面是 12 個 9 唷!

    我採用的方法是 12 個 9 的方法,將 vwTest 的語法修改之後並儲存,在開啟的同時…一切又回到美好的正常狀態了!這裡也有一個看起來頗奇怪的地方呢,不知道各位有沒有注意到,既然都選取 TOP 100 PERCENT 了,不就是選取全部了嗎?為什麼還要特別加上以百分比選取的語法呢?後來跟程式設計師討論了一下,可能是早期的程式產生器所產生的 VIEW 特有的現象,由於程式已經是 N 年前寫的,現在已經不可考了。但為了安全…輕易的把 TOP 100 PERCENT 拿掉又怕會有更不可思議的意外,因此暫且先用 14個 9 的選取方式代替。

    小插曲 — 針對 SQL 2005 SP2 的重大更新
    這一個更新是在找資料中看到的,標題很有趣的寫著 “A Service Pack for a Service Pack
    這個 hotfix 修正的可是一個大問題呢…”清除工作未在排定的時間間隔執行
    什麼 O_o…排定的工作不會執行,這可是大事,當然馬上把它下載到 SERVER 進行安裝
    有先發現總比到後面問題發生在處理好多了,這雖然是一個小插曲,卻是一個很大的意外收穫呢 ^^b

    參考資料:
    http://support.microsoft.com/kb/926292/en-us
    http://support.microsoft.com/kb/933508
    http://support.microsoft.com/kb/933508
    http://www.themssforum.com/SQLServer/Order-views/
    http://sqlblog.com/blogs/tibor_karaszi/archive/2007/11/28/sorted-views.aspx
    http://www.sqlmag.com/Article/ArticleID/95449/sql_server_95449.html

     

    來源:www.51-pass.com

  • IT & Program 那一方有優勢?

    某一天上班的時間,我正在規劃新的網路架構與DNS安全性的議題報告時,突然有一種很深的感慨…
    在近十年的工作資歷當中,IT相關的部份一直佔得很重,當然台灣企業來說不太像國外一樣分的那麼清楚,所以當IT的同時也兼著開發ERP系統,可以說是「IT為主 程式為輔」的界定吧^^b!之前在鈊象電子任職軟體設計師的時候,就一直覺得很吃力,雖然說寫程式是我的興趣,也算是專長之一,但跟極專業的軟體設計師比我當然還是差多了。有鑑於此在感觸的當下我把 MSN 的暱稱改為「當 IT 比當程式設計師有成就感多了!」~
    後來 Maduka 敲我的 MSN 時看到我的暱稱,只發出了一陣陰險的笑聲(XD),莫約十秒後他的暱稱變成「當程式設計師 比當 IT 有成就感多了!」。好吧~我被嗆了~哇哈~由於當下我沒想太多,看了笑一下之後我就繼續我的工作了。
    下班騎機車回來途中,腦袋一直運轉著下午的話題,分析到底是 IT 好還是 Program 好,後來發現…
    現在是網際網路發達的年代,如果今天程式寫的再好,那沒有好的 IT 架構也沒有用啊!舉個例子:
    ================================================
     今天公司有發送大量電子報的需求,RD部門已經將程式的效能、執行續、網路 I/O 相關的部份寫的非常好了!測試 1000 封發送速度極快,已經可以上線了!但正式運作時則經常發生以下情形 —
    01.退信率高
    02.發信時部門網路幾乎癱瘓
    03.發送到某個數量時 SMTP Server 主機會產生死當
    04.超過 10000 封以後寄信速度會只剩下 1 / 6
     
    從以上的情形看來是程式設計的問題嗎?為什麼在測試的時候很ok,一上線就變成這個樣子呢?
    會以電子報作為例子是因為這是個很典型的 程式 + IT 一起運作的例子 (我在某機公司就遇到這樣的情況),問題其實是出在 —
    01.DNS 無 MX 紀錄或是反解不正確
    02.網路架構層級太深,電子報的 Server 位於網路底層,但 SMTP Server 在網路的上層
    03.沒有調整 SMTP 工作階段的數量,大量發送的情況下 MTA 程式更是一個關鍵點
     
    讓我們來針對每一個問題作處理 (以下為 IT 部門的負責範圍) —

    1. DNS 的 MX 紀錄設定好,PTR紀錄設反解,如果要成功機率更高則加入 SPF Record 與 CallerID Record
    2. 可將 SMTP 放置到 DMZ 中,減少封包經由 NAT 轉換的損失,並將電子報主機移至跟 SMTP Server 同一個 Switch ( 視情況是否加入 DMZ)
    3. MTA來說,可以使用 Linux Base 的 Postfix,並參閱官方的設定說明 (建議發送 eDM 不要使用 IIS 的 SMTP)。

    ================================================
     
    由以上的例子可以看得出來,程式寫的好但是 IT 架構設計不良,程式的好無法顯現出來
    IT 架構設計優良,但是沒有好的程式來執行測試,那其價值也無法發揮
     
    最後,我的 MSN 參照「食神」中的撒尿牛丸改成「IT 與 Program 有什麼好爭的!混在一起搞個 ERP 不就得了!
    最後我的朋友也很欣然同意了我的說法了 ^^
     
    現在是團隊合作的時候,單兵作戰的時代已經過去了,唯有多方面的配合才能讓企業更加快速的成長
    願我的朋友們每一位都可以擔任團隊中的關鍵角色,你們一定可以的!GO~
  • 新時代新觀念 — DNS 與 Mail是密不可分的 (含Caller ID與SPF說明)

     由於現在的頻寬日益提昇,Mail Server軟體安裝的過程也可以說是點滑鼠即可完成
    很多朋友近期一直問我:「我家裏已經是光纖了!又是固定IP,那我申請一個Domain就可以架設Mail Server了吧~應該跟Web Server一樣簡單」
    其實…這樣的觀念是錯誤的!Web Server本身只需要A紀錄或是CNAME別名解析,指向到對的IP就可以了

    但Mail Server之間的交談要比Web的複雜,小弟在這裡列出幾項Mail Server必備的紀錄型態:
    MX紀錄:郵件交換紀錄,在2000以前SAPM不會太多的年代,如果沒有MX紀錄的話Server會去尋找A紀錄作查詢;但在2000年以後SPAM大量散發的年代,Mail Server沒有MX紀錄的話大多都是會被Block掉。
     
    SPF紀錄:全名為Sender Policy Framework,這算是一個比較新潮的紀錄型態,2003年SPAM最氾濫的年代由openspf組織制定,加入SPF紀錄的Mail Server可以降低被當成SAPM的風險。如要查詢或是產生SPF紀錄可以到 http://old.openspf.org/wizard.html?mydomain=microsoft.com 或是 微軟的CallerID小工具 會有精靈模式的工具幫助產生。
     
    CallerID紀錄:微軟推行的anti-spam的紀錄型態,原生格式為 XML,以microsoft.com為例
    ====================== 紀錄開始 ======================
    <ep testing=”true” xmlns=”http://ms.net/1“>
        <out>
            <m>
                <mx />
                <a>213.199.128.160</a>
                <a>213.199.128.145</a>
                <a>207.46.71.29</a>
                <a>194.121.59.20</a>
                <a>157.60.216.10</a>
                <a>131.107.3.116</a>
                <a>131.107.3.117</a>
                <a>131.107.3.100</a>
            </m>
        </out>
    </ep>
    ====================== 紀錄結束 ======================
    是不是感覺像在寫程式呢?其實這就是微軟所推行的CallerID紀錄的格式,不要懷疑~
    要產生相當簡單,可以到 微軟的CallerID小工具 ,除了可以產生SPF以外也可以產生CallerID紀錄。
     
     
    以上三個是針對Mail Server (無論是Exchange、Postfix等,都通用)重要的DNS紀錄
    下一篇文章將會寫出如何加入諸如SPF與CallerID特殊紀錄的方式。

  • 計算主機虛擬化後節省的電費

    因為工作上的需要,必須將 Server 整理並將占用空間減少,便開始著手進行虛擬化工程。公司有 18 台 伺服器,其中 7 台都是屬於「骨董」的 PC 了,規格大約是介於 P-II 233 ~ P-III 800 之間,記憶體最大也不超過 256M 的「PC Server」。這些主機除了效能不彰、硬碟會嘎嘎叫以外,重點還是…很熱,尤其是幾台 K7 的更是火熱的很,冷氣開放也壓不過那 CPU 熱情散發的氣息啊 Orz…

    咳咳…虛擬化不是該文的重點所以不詳述,切入主題!花了一些時間將低階的主機虛擬化到高階主機裡面後,主管便提出「變更後報告書」的需求,What??又是報告啊~好吧~沒寫過虛擬化變更的報告,就當練習好了~首先虛擬化第一個直覺想到的優點就是「省電」,恩恩~好~看看節省了多少電費,馬上到台電的網站查詢電費的計算方式!~

    查到的公式在設計到 EXCEL 裡面,填入一些必需的數字,恩…每一台主機的電費就出來了,加加總總後,再加上冷卻成本 (BTU) 節省的費用,乗上 12 個月就是這一次虛擬化所節省的費用~就這樣~算出來的數字就可以當作一個指標了 ^^b

    零件的耗電要怎麼查詢??經過 Google 一番,找到一個好站:http://www.journeysystems.com/?power_supply_calculator
    使用很簡單,點選下方那個大大的「Start the Calculator」後即會跳出一個 POPUP 視窗
    TigerLin 以 SERVER 為範例,這裡點選「SERVERS」 的 Botton計算電費-選擇平台類型

     

    選擇相關的配備,並按下「Find My Wattage!」系統就會建議使用至少幾瓦的 POWER,但 TigerLin 還是最自己稍微加總一下以取得較準確的耗電量。這裡要強調,新的零件大多都沒有內建在裡面,但是其標示的耗電量還是可以當作參考用,至少寫報告交差有個依據,個人 PC 誤差不會超過 100 元就不要太計較了啦 ^~^a計算電費-選擇零件

     

    最後再將所得的數字填入 EXCEL 中紅色欄位的地方,並參照裡面的用電度數範圍填入每度單價,即可大略算出每台主機的電費,報告有數字後也可安心交出去了 ^^b

    image

     

    因為 TigerLin 對 EXCEL 不是很熟…所以介面醜醜的也不太人性化…但至少還可以計算啦 XD
    按這裏從 SkyDrive 下載「計算電費小工具」

  • grepWin:Linux grep 指令的 GUI Interface For Windows

    之前操作Linux系統時常常會用到“grep”這個指令,當一個目錄的檔案數量眾多時,在Linux為了過濾目錄檔案名稱都會下“ls –al | grep config”,這樣檔案清單有符合“config”字串的才會被顯示,在操作設定檔察月的時候grep一樣是很好用。

    前幾天在Windows修改廠商的某個.NET專案,那個程式真的是寫得很…恩…古典又帶有初學者的味道Orz~這個專案中共連接了10個以上不同的DB ,一般來說將Connection String寫在Web config中,然後在.cs中呼叫定義的連線字串。這一個專案非常好樣的~原本廠商的程式設計師居然將10個DB的連線分佈在好幾百個不同的.cs中!!在這幾百個檔案中也不知道有幾個是所需要修改的檔案!!太可怕了…

    一般檔案數量少的話TigerLin會用Notepad++這套免費編輯工具一次拖進去進行修改,但這次光是用WINDOWS內建的搜尋介面–>內含文字功能我就要重複輸入N次做搜尋…聽起來一點都不SMART Orz~

    正當我在思索應該如何更Smart work時, Will推薦給我曙光般的工具– grepWin

    Google一下之後,在這裡下載完安裝後,試用了一下果然威力驚人!!更迷人的是還有整合滑鼠右鍵的ShellExtension功能(請看下圖)~ 

      12

     

    針對要進行搜尋的資料夾按下滑鼠右鍵,就會看到grepWin了,點一下滑鼠後即可進入GUI介面。這裡我使用了一個C#專案的資料夾,並以“NameSpace”進行測試搜尋,搜尋結果如下(順便附上常用欄位說明避免以後自己也忘了:P ):

    123
     

    太黯然太銷魂了~且還支援正規表示式,在搜尋比對過濾清單的過程中列出的清單準確度高,再搭配Notepad++真的是修改大量檔案必備的工具。還有一個小”眉角”要說明一下,請看下圖:

    124

    如果把grepWin下方的檔案清單權選拉到Notepad++後,拉到一般文字的編輯視窗會將檔案變成清單一般的輸出路徑;而拉到上方的Dock則會將所有拖曳的檔案全數開啟~就看各位的需求是怎樣了~最後要強調~正規表示式+ grepWin真的是超好用的啦^^b~推薦給各位~

  • CompTIA CDIA+認證

    CompTIAcdia +考試科目:225-020 , “核證的文件影像建築師, ”是唯一的考試才能實現cdia +認證。 它是指為中高層次的IT專業人員所涉及的文件管理業,並已沒有任何先決條件。CompTIA是否建議召開一個網絡加或項目加標題, CompTIA說,這考試是為那些“誰擁有關鍵的知識技術來規劃,設計,並指定一個文件影像/管理系統” 。及格分數是700對1的規模100至900人。 這項考試是選擇題,構成的85個問題,對於那些從主要以英語為母語的國家,有一個持續時間90分鐘和120分鐘對於那些來自其他國家。主題所涵蓋的考試包括:收集業務需求、 分析業務流程、 建議的解決方案 、設計解決方案、 執行計劃等。

    簡單的介紹一下關於COMPTIA CDIA+的考試科目;

    225-030 Exam:CDIA+ Certification

    225-020 Exam:CDIA+ CERTIFICATION EXAM-2002 OBJECTIVES

    以上對Comptia CDIA+的闡述均由認證信息網提供。

  • CompTIA CTT+ 認證

    CompTIA CTT+ 認證就是美國“計算機行業協會”認證信息技術培訓師(Certified Technical Trainer),是全球公認的信息技術領域最權威的培訓師資格認證。CompTIA 認證是終身的。CompTIA CTT+ 認證考試共分為兩個部分:計算機上機考試和視頻考試。其中,計算機上機考試共有95道選擇題目,在90分鐘內完成。視頻考試為一段考試人員的上課表現的錄像,長度為20分鐘。考試者上交的內容還應包括書面材料作為視頻內容的解釋和補充。根據中國區規定,目前中國只需要通過計算機上機考試即可獲得CTT+認證。目前國內CompTIA CTT+ 認證中計算機上機考試所用語言為英語。

    簡單的介紹CompTIA CTT+認證中的考試科目:

    TK0-201 Exam:CTT+ Exam (Certified Technical Trainer)

    上述對CompTIA CTT+認證的簡介均由認證信息網提供。

  • CompTIA Linux+認證信息

    CompTIA 中的Linux +是一個廠商中立的認證,全國通用的分布,驗證知識的個人與最低的6至12個月的實際Linux的經驗。 專業人士舉行( CompTIA的Linux +憑據可以解釋的基本管理Linux系統從命令列,顯示出知識的用戶管理,了解檔案權限,軟件配置和管理,基於Linux的客戶端,服務器系統和安全。 由於日漸普及,企業準備平臺如Linux ,不論是雇主和專業人士認識到的重要性,技能的驗證。 業內人士承認, ( CompTIA的Linux +認證是一個很好的指標的基礎能力,在日常管理基於Linux的客戶端和基本管理服務器系統。( CompTIA的Linux +是公認的整個產業作為一項基準認證工作的專業人士認為,與其他開放源代碼平臺。 這是發達國家與輸入的領導組織,如低截獲概率的SuSE和linuxcare 。

    簡單的介紹一下關於CompTIA Linux+ 的考試科目:

    xk0-001 Exam:LINUX+ CERTIFICATION (2001 Objectives)

    xk0-002 Exam:Linux+ Certification (2004 Objectives)

                                                      上述對CompTIA Linux+認證信息的闡述由認證信息網提供。