2008年9月30日 星期二

SQL定序

Server: Msg 446, Level 16, State 9, Line 1
Cannot resolve collation conflict for equal to operation.

當你在建立DATABASE時可以選擇collation(定序),若你無法重建DATABASE,則可以調整每個TABLE中每個欄位的collation(定序)。

如果你跨DB join,則所有join的欄位定序都必須相同,否則就會出現你目前的錯誤,你可以進入Enterprise Manager中,選到你要的TABLE,按右鍵選擇Design Table,選到你要join的欄位,就可以設定collation(定序)。

當A與B的定序不同
合併讀取資時會因為定序值不同而出現錯誤訊息
Cannot resolve collation conflict for equal to operation

更改為以下後就可以直接抓取到資料
where A.username COLLATE Chinese_Taiwan_Stroke_CI_AS= B.username COLLATE Chinese_Taiwan_Stroke_CI_AS

2008年9月16日 星期二

IIS檔案上傳size限制

如果您是Windows 2003 Server IIS 6用BASP21元件上傳檔案時,只要檔案超過 200K 就會發生 ASP 0104 '80004005' 的錯誤,
要求物件 錯誤 'ASP 0104 : 80004005' 不允許的操作,原因是web server的內定值被限制

以記事本開啟 C:\windows\sytem32\inetserv\metabase.xml
上傳限制:
找尋 AspMaxRequestEntityAllowed 字串
將 204800 (200K) 修改成你要的數字
下載限制:
找尋 AspBufferingLimit 字串
預設 4MB ,將它修改成你要的數字

該檔案由於被 IIS 系統使用中
請於 IIS 管理員中,於[本機電腦]上點右鍵
選擇[內容]進入後,將[啟用直接編輯 metabase 檔案] 勾選
即可變更metabase.xml檔案內容。

2008年9月12日 星期五

SQL2005 part4

將800多萬筆, 31GB的資料轉到新的機器後, 暫時已能應付ap server的存取, 從performance monitor觀察IO數據、SQL的效能指標都很不錯, 但cpu loading還是一直居高不下

從工作管理員看sqlserver.exe的記體使用量一直維持在131MB左右, 但可用記憶體剩2G多, 很怪! 另一台只有4G Ram的在工作管理員顯示吃到2.7G多(原因是開啟AWE後得從SQLSERVER: Total server memory看才正確!)

雖然很不想去動資料面, 畢竟這是廠商的職責, 不過看這樣子他們也是沒什麼招可玩了...
把自己學過的一點點東西拼湊起來急救看看, 先用sql profiler觀察一下, 大致是select幾個比較大的table時, cpu loading會衝到近滿載, 看了一下竟然沒建索引!! 自己照著畫面隨便建了幾個索引, 沒想到cpu loading馬上降下來!!

繼續把profiler錄下的語法拿到sql tuning advisor執行計畫跑看看, 工作成本變成原來的1/10, 感覺還滿爽的, 繼續再建幾個table的索引, 果然cpu好像吃了維骨力, 爬樓梯都不會喘了..傑克!這真是太神奇啦~~

更意外的是可用記憶體剩不到500MB啦(微軟建議/3gb跟AWE最好不要同時啟用, 以免造成OS記憶體不足, 這點有待觀察), performance monitor的SQLSERVER: Total server memory計數器數字也變成7G多, 看起來正常多了

A generic error occurred in GDI+

在使用.net 2.0產生圖檔要寫入server時常碰到這個錯誤(怒!!)
大部分原因是出在對該資料夾的寫入權限不足,或是沒有先產生該資料夾造成
-- 那你寫這什麼訊息啊! (/‵Д′)/~ ╧╧


微軟對該問題的KB
http://support.microsoft.com/?id=814675

2008年9月10日 星期三

SQL 2005 重要效能計數物件(Performance Counter)及建議值

列舉部份供參考:

Object

Counter

Preferred Value

Memory

Available Mbytes

> 100MB

Paging File

%Usage

< 70%

Process (sqlservr)

%Privileged Time

< 30% of %Processor Time (sqlservr)

Processor

%Privileged Time

< 30% of Total %Processor Time

PhysicalDisk

Avg. Disk Sec/Read

< 8ms

PhysicalDisk

Avg. Disk sec/Write

< 8ms (non cached) < 1ms (cached)

SQLServer:Access Methods

Forwarded Records/sec

< 10 per 100 Batch Requests/Sec

SQLServer:Access Methods

FreeSpace Scans/sec

<10 per 100 Batch Requests/Sec

SQLServer:Access Methods

Full Scans / sec

(Index Searches/sec)/(Full Scans/sec) > 1000

SQLServer:Access Methods

Workfiles Created/Sec

< 20 per 100 Batch Requests/Sec

SQLServer:Access Methods

Worktables Created/Sec

< 20 per 100 Batch Requests/Sec

SQL Server:Buffer Manager

Buffer Cache hit ratio

> 90%

SQL Server:Buffer Manager

Free list stalls/sec

< 2

SQL Server:Buffer Manager

Lazy Writes/Sec

< 20

SQL Server:Buffer Manager

Page Life Expectancy

> 300

SQLServer:Buffer Manager

Page lookups/sec

(Page lookups/sec) / (Batch Requests/sec) < 100

SQL Server:Locks

Lock Requests/sec

(Lock Request/sec)/(Batch Requests/sec) < 500

SQLServer:SQL Statistics

SQL Compilations/sec

< 10% of the number of Batch Requests/Sec

SQLServer:SQL Statistics

SQL Re-Compilations/sec

< 10% of the number of SQL Compilations


詳細資訊:

TechNet Webcast: SQL Server Performance Counter Guidance (Level 300)

http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032357640%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e