搜尋此網誌

2019年11月6日 星期三

SQL效能優化


  • join多個table時會從右邊開始處理,所以資料量越大應擺在越左邊,資料量多→少
  • 條件處理是從下往上,所以越能減少資料量的條件越往下
  • join多個table時在column前加上table alias
  • 使用not exist取代not in
  • between效能等同>= and <=
  • 使用index提升效能
  • 有index的column避免數學運算及使用not,會導致full scan
  • 刪除整張table使用truncate代替delete(truncate會重置auto increment, delete不會)
  • oracle分頁查詢:
select a.*
from (select ROWNUM rn, b.*
      from (select * from table s order by coulmn asc ) b
      where ROWNUM <= page*size) a
where a.rn >= (page-1)*size;

2019年10月5日 星期六

本機架設Git伺服器

1.建立空的專案目錄

2.專案目錄下執行git --bare init

3.產生金鑰ssh-keygen -t rsa -C "git username" -f "檔案名稱"

4.金鑰預設位置:user目錄/.ssh

5.啟動ssh伺服器(bitvise)

6.拉下專案git checkout:username@url:/專案名稱

7.複製專案git clone username@url:/專案名稱 本地專案名稱(自訂,不輸入則預設為專案名稱)

2019年8月7日 星期三

Java與Oracle的日期時間轉換

Java的日期時間格式
java.util.Date


Oracle的日期時間格式(皆繼承自java.util.Date)
java.sql.Date:年月日
java.sql.Time:時分秒
java.sql.Timestamp:以上兩者合併(精確至微秒)


Oracle轉換Date函數
TO_CHAR():日期格式轉字串
ex:TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS')

TO_DATE():字串轉日期格式
ex:TO_DATE('2000-01-01 23:59:59', 'YYYY-MM-DD HH24:MI:SS')

TO_TIMESTAMP():字串轉日期格式
ex:TO_TIMESTAMP('2000-01-01 23:59:59', 'YYYY-MM-DD HH24:MI:SS')


系統時間
SYSDATE:返回Date
SYSTIMESTAMP:返回Timestamp

Array與Collection的轉換方法

印出Array所有元素
Arrays.toString()


Array轉換為List
Arrays.asList()


Arrays排序
Arrays.sort()


List轉為Array
new ArrayList().toArray()


List排序
Collections.sort()


List反轉
Collections.reverse()

2019年2月21日 星期四

Windows工作排程器無法執行

1.設定開始位置的目錄

2.選擇「只有使用者登入時才執行」,取消「以最高權限執行」

2019年1月29日 星期二

常見的型態轉換問題(無現成套件)

常發生於DB撈取資料為null時
  • 數字型態(如int, double)輸入null的轉換
  • 日期格式(如date, datetime)輸入null的轉換

2019年1月16日 星期三

解決Intellij console亂碼問題

開啟Intellij安裝目錄下/bin/idea.exe.vmoptions或idea64.exe.vmoptions
增加-Dfile.encoding=UTF-8

2019年1月8日 星期二