搜尋此網誌

2012年12月17日 星期一

把tempdb 改用 ramdisk 幫 sql server 2008 增加效率

因為工作的地方用的資料庫是微軟的 sql server 2008,雖然現在的主機硬體性能比起以往都要好上很多,但能夠幫資料庫主機增加穩定及效率的方法,都應該來使用

先說明一下sql server 中的 tempdb 這個資料庫,tempdb 使用者不能自己去建立,是由sql sevrer 2008
在啟動時自己建立的,此資料庫的主要功能是放一些臨時table 及子查詢時的暫存之用
如 create table  #test_table(no integer,name varchar(24))
此 #test_table 就是暫時 table ,在使用者連線結束後就會自動被刪除,這種table 就是放在 tempdb 中

也因為這樣的關係,如果有系統使用大量的臨時table,tempdb 的 i/o 儲取量也會變大,在網路上找到說可以把tempdb 放在ramdisk 中,來增加效率及降低硬碟的損耗,因此就買了SuperSpeed LLC 這家公司的  RamDisk Plus(64bit) 版本 11.5.390.0,來給sql server 用


 1.首先規劃要分配多少ram 給 tempdb 用,可以先看目前的tempdb 的檔案實際大小是多少,我是用現在大小2倍的量設定ramdisk 2GB,磁碟機編號使用 f:

 2.ramdisk 設好後,要進入到 properties 裏設定一個選項

 3.在setting 裏選用 associated image file,這個選項的作用是,指定ramdisk 的資料在關機時會另外存檔,在每次開機時再自動載入,有人可能會奇怪,tempdb 不是sql server 會自動建立嗎?會何還要另外存檔,因為實際使用上發現,沒有存檔時,ramdisk 一開始都是空的,相對的連權限資料都沒有,會導致sql server 啟動時建立檔案失敗,指定關機存檔後,權限資料也被保存,sql server 啟動才會正常
4.對disk F: 開放讀寫的權限(此步驟很重要,少了此步驟,sql server 啟動會失敗)
5.設定好ramdisk 後,再到sql sever 管理程式,調整tempdb 的檔案所在目錄,改為ramdisk F:
調好後,sql sevrer 重新啟動,大功告成



6.改成把tempdb 移到ramdisk 後,實際觀察一些系統,很明顯一些query 的速度有大幅提升50%~100%,而且大幅減少磁碟i/o儲取數,相當另人滿意


2012年12月15日 星期六

使用ida 6.1 在32bit winxp 遠端除錯 64bit server 2008 上的程式

最近終於把一個64bit 的程式給破了,之前都是用ollydbg 但因無法在64bit windows 上使用,所以一直無法破解,後來找到用ida 6.1 可以遠端除錯64bit 的資料,試了一下非常方便,整理一下設定的步驟

1.先在64bit windows 上執行 ida 裏的 win64_remotex64.exe ,這是server 程式,等會就是透過他來啟動跟追蹤程式

2.在32bit windows 裏啟動 ida 6.1 ,選 debugger->Remote Windows debugger

 3.在hostname 中輸入64bit windows 的 ip,port 可以用預設值 23946
   及要追蹤的程式所在目錄及檔名

 4.因為我要追蹤的目標主要是一個dll,所以按下 Debug options 的按鈕,進入debug 選項設定
   我選擇events 裏的 stop on library load/unload,及 log 裏的 stop on library load/unload
   如此一來程式在要載入dll 時都會暫停下來,方便追蹤

5.載入程式後的畫面,及暫停在dll 載入時


2012年12月14日 星期五

新版的ndk 終於不用安裝 cygwin 了

最近因為電腦重安裝,就順便更新eclipse 及 android 相關的開發環境,
全部都用最新版的來裝,才發現, ndk r8c 這個版本,不再需要安裝cygwin
也能compile 和 linker 完成
只要等 eclipse 裝好 ADT 後,到window 裏的 preferences 設定 ndk 的所在目錄就可以了


但發現另一個問題,就是 include ndk 相關的 .h 檔裏,都會出現錯誤訊息
雖然可以用設定來忽略掉,完成 compile 及 make,但感覺就是不對
還在尋找解決方法中



2012年12月1日 星期六

測試成功在 ACER E350 上安裝 Garmin 導航

逛對岸的論壇時發現關於在android 上安裝Garmin 導航的討論
因為Garmin 並無正式的發表android app ,都是綁特定手機硬體
在好奇之下,就照著試了一下,結果E350 也可以正常執行Garmin 並用台灣圖資導航
相關連結
http://www.sosaw.com/threads-301247-1-1.html
http://www.sosaw.com/threads-302448-1-1.html
http://www.ztgps.net/thread-50367-1-1.html

要安裝成功主要的關鍵在於
1.E350 要先 root 過,因為要把2個 *.so 檔,放到系統的目錄裏,而且要調整 so 的權限
2.要裝 root explores app 或 ES 檔案瀏覽app
3.討論中所附的懶人包,預設的Garmin 檔案目錄是在sdcard,但 E350 的 sdcard
  是內建的空間較小,sdcard2 才是外接的,可以自己用比較大的卡
  因此要用類似ultraedit的編輯程式,把 libgarminos.so 修改為使用sdcard2
4.討論也有附一個改好成sdcard2的so下載連結,但測試後發現有問題,
   最後是自己手動改了一個才成功
  補上一個自己用ultraedit修改為用sdcard2且測試成功的圖

5.懶人包中預設的地圖圖資是大陸的地圖,因此自己找了台灣的2012-10版的圖資蓋掉
測試後導航沒有問題,但目前語音尚未測試

本人只是好奇測試一下,不提供任何下載資源,請自行參考相關討論

補上一張截圖

2012年11月29日 星期四

ACER E350 安裝 CWM recovery

原文參考 http://forum.xda-developers.com/showthread.php?t=1983706
之前把手機root 過後,接著就是裝 recovery ,好方便日後刷rom 時避免手機變磚的風險
但請注意,只要是燒錄就會有風險,裝 recovery 也一樣,安裝時請自負風險

先下載 CWM pack 檔案
1.解開cwm pack 檔案
2.把手機電池先拿掉後,用usb 線跟電腦連接
3.在裝置管理員中會看到一個未知的裝置



對此裝置按右鍵選安裝驅動程式,再選擇指定檔案位置,自行根據不同windows 選擇
CWM-pack\r2-tools-acergallant\USB Drivers 此目錄下的驅動程式,我自己的電腦是win7 64bit

4.驅動程式裝好後,先把手機的usb 連接線先斷接,電池還不要裝回去
5.執行CWM-pack\r2-tools-acergallant\Flash Tool 裏頭的Flash_tool.exe(如果是win7 要用系統管理員身分執行)

5.選擇選單的 File->open scatter-loading file

再選擇 CWM-pack\r2-tools-acergallant\Scatter 裏的一個 txt 檔
6.此時下面畫面會出現一些可選的燒錄清單,主要是RECOVERY 這項,對著RECOVERY 點2下後,再選擇
CWM-pack\r2-tools-acergallant\Images 裏的 cwm6.0.1.5.lucky76_1.img 檔


7.接著按下畫面上 Download 的按鈕,再把手機用usb線接上,程式會自動偵測,並燒錄進去 recovery    映像
8.燒錄成功會出現綠色的圓圈畫面

9.此時可以把手機usb 線斷開,電池裝回去開機,之後如果手機開機要進入recovery 模式,只要同時按下 "電源" 跟 "音量按鈕上" 就可以進入


ACER E350 root

最近終於買了手機,ACER E350 Android 4.x 共花了6400
之前一直沒買因為買不下手,自己不是手機重度使用者,花1萬多買手機實在是浪費
入手後第一件先做的就是要root  好方便日後裝一些東西
主要原文參考
http://forum.xda-developers.com/showthread.php?t=1899736

我主要就是做ROOT
1.先到ACER 網站下載E350 DRIVER,解開後執行裏頭的 Install.bat,會自動判斷是32bit或64bit windows 安裝驅動程式
2.用USB 線把手機接上電腦,如果正常的話會自動識別出driver
   在裝置管理員應該要出現下圖所示裝置
3. 下載root 要用的檔案,解開後執行裏頭的 Runme.bat後選項選1 按enter

此時注意手機會出現還原選擇畫面,要按下選擇還原的選項

4.等待2次手機重開機後就root完成

2012年11月25日 星期日

用Rad Studio XE3 在vmware 裏的mac osx 下寫delphi 程式

  Rad Studio XE3 工作單位買進來一陣子了
一直對如何用firemonkey 寫 mac os (ios) 的程式很有興趣
放假時測試了2天,才總算把環境裝起來
因為沒有mac os 實體主機,只是想先測試一下

  網路上找了一下發現可以用vmware 跑 mac os
在對岸找到了別人預先裝好 10.7.x 的 vmdk 檔
但在裝xcode 時,總是無法正確執行
試過了 xcode 4.0.2,4.1,4.2 都是一啟動 xcode 就錯誤
再查了一下網路,發現是mac os 預裝好的,都會有問題
但要自己裝 mac osx 10.7 好像都很麻煩

  後來一想,乾脆全部用新版裝來試看看
於是用 vmware 9.01 試用版 + mac osx 10.8 + xcode 4.5
重頭到尾裝一次,總算xcode 可以正常啟動了
正常的vmware 是不能安裝 mac os 的,要去找一個unlock  的程式
裝好xcode 後,還要用darwin.iso 裝vmware tools
裏頭有顯示卡及分享目錄的驅動,這樣才方便由windows 丟東西進去 mac os
另外mac os 的網路ip 不能使用nat 的方式
因為studio xe3 之後要設定 paserver 的 ip及 port
我是在vmware 裏設成 bridge ,再到 mac os  裏把ip 改成 192.168.0.55

接下來要在mac osx 裏執行rad studio xe3 裏的 setup_paserver
xe3 才能把程式傳入 mac osx 裏執行及debug

最後隨便用xe3寫了一個程式,測試一下中文及一些物件使用的狀況,都很正常



寫好程式後,因自己沒iphone 想把程式email給朋友,請他看跑的情形如何
結果才發現沒那麼簡單,查詢了一下 要發佈osx程式,只有2條路
1.每年花 $99,得到appple 的憑證,才能把程式丟上 appple app store 給別人下載使用
2.iphone 要jb,再把程式用自簽證的方式丟上去執行