發表文章

Unicode 字碼分布表

前言: 因為工作因素,遇到轉換檔案的需求,因為發現他們給的加密過的檔案中有出現 0A 前面自動被補了一個 0D ,導致我解密無法正常處理,雖然我寫了個程式來排除這個狀況,但想確認有沒有可能會有影響到正常程式的運作,所以找了一下 Unicode 的編碼分佈資料,並留存以供自己參考。

Table Variable 成效能殺手?

前言:   在很多時候我很愛把選取清單放到 Table 變數中,大多數狀況下他是有效能的提升的 而且 Table 有著只在當下執行的 scope 有效,離開後就自動失效,所以我不用清理他,且在使用過程中不會被其它人操作到裡面的值的好處。   但在昨天使用時就遇到了效能瓶頸... 我從員工資料庫撈取目前在職員工的清單並放到 Table Variable 中,然後其它查詢式子再去透過該列舉清單去撈取我想要的員工的相關資料,結果發現他執行了 40 分鐘多才跑完... 但我如果在該撈取變數上直接使用子查詢來進行在職員工的列舉,並撈取我要的資料,卻跑不到十分鐘,這差異完全打翻我的印象,讓我開始思考差異點究竟為何....

[VB.Net] If vs IIf ,兩者的差異

這次的文章算隨筆 純粹是我之前印象 VB 的單行式判斷式 IIf 在某些狀況下是會有問題的,結果看到了公司的 Code 中有單行式判斷式 - If ,本來以為是類似 Alias 的東西,不過仔細探究才發現兩者的作法並不一樣 這裡稍微講述一下我之前對 IIf 的例外狀況的印象,首先 IIf 的格式是長這樣 IIf(Expression As Boolean, TruePart As Object, FalsePart As Object) As Object 當 Expression 為 True ,則回傳 TruePart ,否則則回傳 FalsePart 的部份 這看起來很直覺,感覺沒什麼問題,那我說的狀況是怎樣呢? 如果 TruePart 或 FalsePart 為一函式的呼叫,而如果 Expression 為 True 時,FalsePart 的函式則不能呼叫的狀況 舉例來說,如果 Expression 判斷某個變數值是否是 Nothing ,而 FalsePart 呼叫的函式會在該變數值為 Nothing 被呼叫的話,就會產生 Exception 至此,應該知道我說的狀況是什麼了?是的,就是其實 IIf 是函式,他是會將 TruePart 及 FalsePart 上的函式先進行評估運算後進行呼叫 實際可以以以下程式碼作測試:     Sub Main()         Dim bln As Boolean = True         Console.WriteLine(IIf(bln, A(), B()))         Console.WriteLine("====================================")         Console.WriteLine(If(bln, A(), B()))     End Sub     Function A() As String         Console.WriteLine("A(...

Outlook 刪除大量重覆信件

  最近因為公司的 Exchange 系統轉換,因為容量變大,想說把之前因空間因素抓下來後就刪除的信件全匯回去,之後就可以透過線上直接閱覽舊信件,匯入時看到有重覆項目的處理選項,我也勾選了重覆項目不匯入,沒想到還是中了陷阱,雖然一封信頂多重覆一次,但重覆的信件高達上百封,要我手動砍... 也不是砍不完,就不知要花多少時間了,所以上網找解答!

T-SQL 變數大小寫相異的錯誤

這次同事遇到的說資料庫的 stored procedure 執行錯誤,但那隻我們執行多次,也不記得有錯過 請我去看,錯誤訊息是找不到指定的變數,檢視了一下,他要用的變數是有定義,只是大小寫不一樣 之前我對 M$ 的印象就是大多數都不管大小寫的差異的XD 這次居然會出現變數有差異,也覺得很驚奇,雖然直覺應該是定序的差異,但我還真沒印象我之前定序設 BIN 時,資料庫變數名就會有大小寫的差異 後來去查了一下,原來變數是由 master 統管,所以只要 master 的定序為大小寫視為相異,那變數名就會變嚴謹!

隨筆

這個只是看到覺得很有趣,所以隨手紀錄下來的 我之前有多項資料串接我會作類似像 SELECT '1' AS A UNION ALL SELECT '2' UNION ALL SELECT '3' UNION ALL SELECT '4' UNION ALL SELECT '5' 但今天學到了一招 SELECT * FROM (VALUES('1'),('2'),('3'),('4'),('5')) AS T(A) 限制需於 SQL Server 2008 以上版本

[SQL Server] SQL 上的效能議題 - 字串串接

這次也是工作上的遭遇,就順便寫一下 blog 紀錄一下 這次是我在同事的 SQL 上看到了像是 Declare @t NVARCHAR(MAX) = N'' SELECT @t += SerialNo + N',' FROM MyTable 很好,非常的直覺XD ,一看就知道是對 MyTable 上的 SerialNo 欄位作字串串接 那這樣會有什麼問題呢?