發表文章

目前顯示的是 1月, 2014的文章

SQL幾種物理查詢邏輯

圖片
最近在查一個案例,使用者反應在查一個員工數比較少的請假資料的時候會出現錯誤畫面,查員工數較多的公司別的時候反而很快的就查詢出來了,當下一開始的直覺可能是資料面有問題,因此打開程式執行後發現該錯誤為ASP.NET畫面查詢SQL時等待過久timeout所導致,但這問題就來了,為何資料比較少查詢反而會timeout,資料較多的反而不會。 跟同事一起討論後大家一開始都覺的是Index的關係,因此就開始往錯誤的Index去查,結果查出了大學問(小弟我SQL方面的功力很破請見諒)。原來SQL Server在處理Join的時後,會跟據Join table的資料量、索引等…來決定使用不同的實體處理模式,SQL Server本身共有三種物理連接方式,【巢狀迴圈(Nested Loops)】、【合併聯結(Merge Join) 】、【雜湊比對(Hash Match)】。下面先簡單的說明三種連結的處理原則。

ReportServer中參考自定義Assembly

圖片
愚蠢的筆者在 2016/06/16為了解決報表矩陣的問題 ,發現根本不需要畫蛇添足的另外撰寫一個組件,報表本身就可以撰寫函式來處理此問題了,此篇文章僅留下當作參考外部組件的運用方式。 ================= 分隔線底下為原文 ================= 最近接近要發年終的日子了,但老闆們突然交待要將薪資條內的年終獎金和績效獎金的項目合併只呈現年終績效獎金,原本想說一個很簡單的東西,去薪資項目內修改名稱即可,沒想到薪資單列印的程式一打開,暈倒,竟然是寫死的,而且就連位置都是寫死的,我想一時半刻要調整也不是太大的問題,只是報表(rdl)的判斷式IIF會寫的很長很難寫,因此去詢問了有經驗的同事提到可以另外寫Function在提供給報表使用,下面說明一下設定的方法。 需求說明 1.只有年終獎金 -> 年終獎金項目顯示【年終績效獎金】 2.只有績效獎金 -> 績效獎金項目顯示【績效獎金】 3.年終績效獎金都有 -> 維持原先顯示項目【年終獎金】、【績效獎金】