SELECT TOP 20 SUBSTRING(qt.text, (qs.statement_start_offset/2)+1, ((CASE qs.statement_end_offset WHEN -1 THEN DATALENGTH(qt.text) ELSE qs.statement_end_offset END - qs.statement_start_offset)/2)+1), qs.execution_count, qs.total_logical_reads, qs.last_logical_reads,qs.min_logical_reads, qs.max_logical_reads,qs.total_elapsed_time, qs.last_elapsed_time,qs.min_elapsed_time, qs.max_elapsed_time,qs.last_execution_time,qp.query_planFROM sys.dm_exec_query_stats qsCROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qtCROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qpWHERE qt.encrypted=0ORDER BY qs.total_logical_reads DESC此結果依照成本來排序 產生的結果 xml,可儲存成 .sqlplan,再以 management studio 打開,可檢視其 execution plan. 取自 :http://www.microsoft.com/technet/technetmag/issues/2007/11/SQLQuery/default.aspx?loc=zx 之 http://www.microsoft.com/technet/technetmag/issues/2007/11/SQLQuery/default.aspx?pf=true&fig=true&loc=zx
2007年11月15日 星期四
識別前 20 個在讀取 I/O 時耗用最多資源的查詢
2007年11月13日 星期二
一個新的 Rich Text Editor for asp.net ajax
2007年11月2日 星期五
asp.net 1.1 與 2.0 的SSO
公司內有不同的team,以 asp.net 1.1 與 asp.net 2.0開發程式
一個team只會使用 1.1 來開發,暫時還無法使用 vs2005 來開發程式
一個team 不願再使用 1.1來開發了。真的生產力不好。因此要用 asp.net 2.0 (vs2005) 開發。
問題來了,兩個不同版本的程式,當然需要不同的虛擬目錄。都使用 Forms authetication。
一般來說會使的使用者需要登入兩次。
解法如下:
ASP.NET 2.0 的預設decryption 是AES,而非 asp.net 1.1 的 3DES。為了讓兩者有一致的解密法,要將一些屬性設定成一致
ASP.NET 2.0 的 web.config 而要設定如下。其中,name 與 protection 的值必需與 asp.net 1.1 的一致。
<authentication mode="Forms">
<forms name="VAT" protection="All" loginUrl="login/login.aspx">
</forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
<machineKey validationKey="F9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902" decryptionKey="F9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902F8D923AC" validation="SHA1" decryption="3DES" />
ASP.NET 1.1 的 web.config 與上面幾乎要完全相同,不過,不能有 decryption="3DES"的屬性設定。