2011年10月14日 星期五

大量資料匯出CSV檔之問題處理

之前都會直接用一個loop 把所有內容,
利用StringBuilder全部串起來,最後再存成CSV檔。
一直以來都相安無事,

最近踢到鐵板了,當資料量過大時,如30萬以上,就會發生OutofMemory的Error。

2011年9月1日 星期四

SQL- 利用BULK INSERT做大量匯入


大量匯入資料,可使用下面的方式,我測試79萬筆資料約18秒完成insert


2011年7月20日 星期三

SSIS - 利用GMAIL Smtp寄發MAIL

若想使用gmail來寄發mail,不能直接使用"傳送郵件工作"的,因為gmail要設特定的port,
還要輸入帳號及密碼的帳戶驗證,這些都是傳送郵件工作屬性中無法設定的。

所以,我們若要使用gmail來發送的話,就需利用"指令碼工作",來寄發mail。
程式如下:


2011年7月12日 星期二

SQL 大量insert into 效能改善

最近一直在跟SQL打仗,總想著有沒有更快的方法。

實驗對象: 共有67萬筆左右的原始資料要做清整,之後再INSERT到結果表中。

若一筆一筆CONNECTION OPEN() , CLOSE(), RUN個70萬次,一定是最慢的。

所以,就設定一次抓1000筆先把SQL組好再做INSERT。
原先的組法是
INSERT INTO A (a1,a2,a3) values ('x1','x2','x3');
INSERT INTO A (a1,a2,a3) values ('x1','x2','x3')
 這樣的速度大概15分鐘run30萬筆左右。

後來發現sql 2008有新的用法,還有人寫ppt說速度會提升,寫法如下:

2011年7月10日 星期日

C# 取TABLE中的最大最小值~

以前,為了要取最大最小值,都要在那裡寫一個LOOP,玩比大小,最後取得最大或最小值。
(或是一些運算式,都會傻傻的,土法煉鋼)

最近因為瘋狂拜古狗大師,才發現原來有內建的FUNCTION可以用。@_@

2011年7月8日 星期五

C# 讀取EXCEL的日期.....

EXCEL的日期,轉出時,會變成數字。

數字字串的轉換規則如下:
  1. 整數部分: 該整數是從1900/1/1 起算, 數字 0 表示 1900/1/1.
  2. 小數部分: 小數部份是指佔該天的百分比, 所以 0.5 表示中午 12 點, 0.25 表示上午 6 點. 
一開始真的很認真的給他寫成:

2010年5月23日 星期日

0523~北宜公路賽

臨時抱佛腳,但也認真的賽前練習了一下,
早上起個大早到店裡集合,天氣不是挺好的,
坐了車晃呀晃的,也到了集合點烏石港,
這次,沒了幾個熟悉的車友一同報名,
顯的有點孤單,一個人站在梯次的最前排,
發呆著等著時間一分一秒的過去,
突然,有人叫了我的名,望了過去,
很眼熟的一個女生,啊~之前有見過面的,
她也只有一個人,正好,我們可以一起作伴,
或許是有伴聊天,時間就過的飛快,
不知不覺中,就輪到我們這梯了,
聽著廣播人員邀請比較強的選手站在第一排,
她說,要我不用等她,她騎很慢的,

等待嗚槍時,愈來愈緊張,是也知道八成是跟不上集團,
雖然在賽前,
朋友們總跟我說,放行就開始爬坡啦!不用太擔心的,
但仍無法控制自己的心跳,還沒騎,就己經一百初了,哈~

ㄅ一ㄤˋ~~~~~~~