日前為了解決公司系統效能的問題,真的是挖了不少解決方案出來,其中一個比較有意思的就是分頁處理.
分頁方式其實有非常的多種,例如把資料全部丟到Web,再分頁顯示,或是直接在DataAdapter.Fill時,下筆數,或是用Selete top 加上一些過濾及排序等動作.
但這些做法,都不能解決我現在的頻寬問題,因為分店連回總公司只有2M/256K的頻寬,如果一次倒回大量的資料,一定會打爆網路,而總公司的架構部份,WebService與DataBase也是不同台的伺服器,兩台伺服器也是需透過網路來傳輸,所以思考方向會是在如何在DataBase那,就做好分頁的動作. 不要有大量的資料在網路上傳輸.
為了這個問題,找了不少方法,像是Select top的方式,但因為程式查詢彈性的關係,造成這部份的邏輯相當的複雜,效能也不好. 最後找到SQL 2005才有的Row_number()這個Function可以用. 從一些參考網站所做的效能評比中,也算是數一數二的做法,所以這做法也是最後被公司採用的解決方案.
以下就是說明Row_number()的基本做法.
select a.UserName,a.UserID from (select row_number() over (order by UserID) as UID,UserName,UserID from UserDataInfo where bmi>20) as a where a.UID between @SP and @EP
這段語法就是關鍵所在,正常來說,我的語法只有紅字部份,帶出所有bmi>20的人員,一次把資料全部回傳,但這裡卻多了一段藍字在裡面,Row_Number()就是將符合條件的結果,再從1開始,依序給予編號,所以回傳的結果就會是
UID UserName UserID
1 Jeff A0001
2 Jerry C0014
3 Judy C0096
4 Mark D0002
5 Jason D0010
6 Rober D0011
7 Martin D0022
所以黑色部份的語法,就依這個的查詢結果,取出UID介於幾號到幾號之間. 所以就可以在DataAccess端,依據設定的PageSize,來算頁次,再依目前的頁次與PageSize去帶回所需顯示的資料範圍.
如果不分頁的話,一次載入上萬筆資料是很可怕的,尤其是透過2M/256K的頻寬,這是ERP系統,不是P2P下載平台,使用者不可能等,如果用分頁方式,就只會一次傳回指定的筆數,大幅的減少網路的負擔,而且這是在DB就做好的動作,所以從DataBase到WebService這段的網路問題也解決了.
這做法也不是沒有缺點,例如在換頁過程中,突然又有幾筆資料符合或不符合了,其順序就會異動,就有可能剛好在換頁時,某筆資料會沒看到,可能跳到前頁或下頁去了. 這部份就看各家使用者了.
另一個問題就是筆數一多時,頁次愈換到後面,速度會愈慢,但這也是百萬筆資料的事,當有這麼多資料時,應該也沒有什麼人會一頁一頁的去看完它.
範例T-Sql指令:
SELECT * FROM
(
SELECT *, ROW_NUMBER() OVER (ORDER BY WAT_NO) AS SQL_RowNumber FROM LNDT010 Where 1=1
)
AS NormRen
WHERE SQL_RowNumber BETWEEN 1 AND 10
2010年12月30日 星期四
2010年12月27日 星期一
IUSR,IWAN,密碼查詢
前幾天剛好需要用 IUSR 的身份來執行程式, 可是 IUSR 的密碼我又不知道, 於是就查了一下。
方法不難, 有需要的人可以試試看:
1. 用記事本開啟 C:\InetPub\AdminAcripts\adsutil.vbs
2. 找到 IsSecureProperty = True, 變更為 IsSecureProperty = False, 存檔
3. 請開啟命令提示字元。在附屬應用程式下面。或是按「開始 / 執行 / 輸入 'cmd' / 按確定」也行。
4. 在命令提示字元輸入
c: (按 Enter 鍵)
cd \inetpub\AdminScripts (按 Enter 鍵)
5. 要取得 IUSR 密碼:
cscript adsutil.vbs get w3svc/anonymoususerpass (按 Enter 鍵)
6. 要取得 IWAN 密碼:
cscript adsutil.vbs get w3svc/wamuserpass (按 Enter 鍵)
7. 查完了別忘了再將 C:\InetPub\AdminAcripts\adsutil.vbs 檔中的 IsSecureProperty = False 改回 IsSecureProperty = True。不然就危險了喔。
8. 可以用這個帳號密碼去做事囉。
9. 如果還有做其他的異動, 就可能需要重新啟動電腦
方法不難, 有需要的人可以試試看:
1. 用記事本開啟 C:\InetPub\AdminAcripts\adsutil.vbs
2. 找到 IsSecureProperty = True, 變更為 IsSecureProperty = False, 存檔
3. 請開啟命令提示字元。在附屬應用程式下面。或是按「開始 / 執行 / 輸入 'cmd' / 按確定」也行。
4. 在命令提示字元輸入
c: (按 Enter 鍵)
cd \inetpub\AdminScripts (按 Enter 鍵)
5. 要取得 IUSR 密碼:
cscript adsutil.vbs get w3svc/anonymoususerpass (按 Enter 鍵)
6. 要取得 IWAN 密碼:
cscript adsutil.vbs get w3svc/wamuserpass (按 Enter 鍵)
7. 查完了別忘了再將 C:\InetPub\AdminAcripts\adsutil.vbs 檔中的 IsSecureProperty = False 改回 IsSecureProperty = True。不然就危險了喔。
8. 可以用這個帳號密碼去做事囉。
9. 如果還有做其他的異動, 就可能需要重新啟動電腦
於
凌晨1:35

2010年12月16日 星期四
將 Windows Server 2003 中的 Web 伺服器效能最佳化
停用不必要的服務
停用 Windows Server 2003 就不需要專用的 Web 伺服器的服務。要這麼做,請您執行下列步驟:
1.按一下 [開始],指向 [程式集]、 指向 [系統管理工具],然後再按一下 [電腦管理]。
2.在 [電腦管理 (本機)],展開 [服務及應用程式,然後按一下 [服務]。
在 [狀態] 欄標籤為正在執行每個服務 」 已啟動。在專用的 Web 伺服器上不需要下列服務:
警示器
[剪貼本]
電腦瀏覽器
DHCP 用戶端
DHCP 伺服器
傳真服務
檔案複寫
紅外線監視器
網際網路連線共用
信差
NetMeeting 遠端桌面共用
網路 DDE
網路 DDE DSDM
NWLink NetBIOS
NWLink IPX/SPX
列印多工緩衝處理程式
TCP/IP NetBIOS 協助程式服務
電話語音
Telnet
不斷電供電系統
3.請注意依存於您想要停用每個服務的服務。要這麼做,請您執行下列步驟:
連按兩下您想要停用的服務。
按一下 [依存性] 索引標籤。
這個服務依存在下列系統元件上] 清單中請注意這項服務而定的服務。
下列的系統元件依賴此服務] 清單中請注意不能啟動,而這項服務的服務。
按一下 [確定]。
4.一次停用您所選取每個服務。要這麼做,請您執行下列步驟:
您想要停用的服務上按一下滑鼠右鍵,然後按一下 [內容]。
在 [啟動類型] 清單中,按一下 [已停用]。
如果您想要立即停止服務,按一下 [停止]。如果出現 [停止其他服務] 對話方塊,注意其他相依服務,將也停止],再按
[是]。
按一下 [確定]。
5.重複步驟 4,以停用其他非必要的服務。
備忘稿
停用每個服務,以確定您不關閉您想要繼續使用的服務之後,請測試 Web 伺服器正確操作。
如果網際網路資訊服務 (IIS) 伺服器是 Windows Server 2003 網域的成員,您必須在您的系統正確地將群組原則
套用到電腦上要有 TCP/IP 協助程式服務。
當您停用 DHCP 用戶端時,DHCP 用戶端會停止動態 DNS 登錄。 這會停用 DNS 動態更新通訊協定,而且需要手動要新
增為這個用戶端在 DNS 伺服器的 DNS 記錄。
最佳化網路應用程式的資料輸送量
在工作記憶體中執行 IIS 6.0 程序可分頁程式碼。要這麼做,請您執行下列步驟:
1.在 Windows 檔案總管中用滑鼠右鍵按一下 [網路上的芳鄰],然後按一下 [內容]。
2.您要最佳化的區域連線] 上按一下滑鼠右鍵,然後按一下 [內容]。
3.這個連線使用下列項目] 清單中按一下 (但不要清除其核取方塊) 檔案和印表機共用的 Microsoft 網路,然後按一下 [內容。
4.按一下 網路應用程式的最大值的資料輸送量,按一下 [確定],然後再按一下 [關閉]。
將背景服務的效能最佳化
IIS 6.0 處理序 (Inetinfo.exe) 執行為背景服務。 如果要增加背景服務的效能,請依照下列步驟執行:
1.按一下 [開始],按一下 [控制台],然後再按一下 [系統]。
2.按一下 [進階] 索引標籤,然後按一下 [效能] 下的 [設定]。
3.按一下 [進階] 索引標籤,按一下 [背景服務],然後再按兩次 [確定]。
停用 IIS 6.0 記錄
除非需要它停用登入網站、 虛擬目錄和檔案和資料夾。要這麼做,請您執行下列步驟:
1.按一下 [開始],指向 [程式集]、 指向 [系統管理工具],然後再按一下 [網際網路資訊服務 (IIS) 管理員]。
2.展開 server name,其中 server name 」 是 Web 伺服器的名稱。
3.找出您想要修改、 項目上按一下滑鼠右鍵,然後按一下 [內容] 項目 (網站、 虛擬目錄或實體目錄)。
4.執行下列其中一項:
如果您選取 [在網站上按一下 [主目錄] 索引標籤。
-或
如果您選取 [虛擬目錄按一下 [虛擬目錄] 索引標籤。
-或
如果您選取 [實體目錄按一下 [目錄] 索引標籤。
5.按一下以清除 [記錄瀏覽] 核取方塊,然後按一下 [確定]。
若要停用整個 Web 站台的記錄,按一下 [網站] 索引標籤,按一下以清除 [啟用記錄] 核取方塊,然後按一下 [確定]]。
6.結束網際網路資訊服務 (IIS) 管理員]。
啟用頻寬節流設定
限制可用於個別網站的網路頻寬。要這麼做,請您執行下列步驟:
1.按一下 [開始],指向 [程式集]、 指向 [系統管理工具,然後再按一下 [Internet 服務管理員]。
2.展開 server name,其中 server name 」 是 Web 伺服器的名稱。
3.您想要修改的網站上按一下滑鼠右鍵,再按 [內容]。
4.按一下 [效能] 索引標籤,然後按一下以選取 到此網站可用的網路頻寬限制] 核取方塊。
5.在 [最大頻寬] 方塊輸入新的值,然後再按一下 [[確定]。
6.結束 [網際網路服務管理員]。
啟用 CPU 監視
啟用監視監視及自動關機會耗用大量的 CPU 時間的工作者處理序的 CPU。要監視的 CPU 請依照下列步驟執行:
1.在網際網路資訊服務 (IIS) 管理員,展開本機電腦、 展開 [應用程式集區] 資料夾,用滑鼠右鍵按一下應用程式集區,您想要在啟用 CPU 帳戶處理,然後按一下 [內容]。
2.按一下 [效能] 索引標籤,然後按一下以選取 [啟用 CPU 監視] 核取方塊。
3.在 最快的 CPU 使用] 方塊按一下向上和向下箭號,以設定您想要使用應用程式集區的 CPU 的最大的百分比]。
如果應用程式集區使用超過指定的最大值,IIS 會在 Windows 事件記錄檔中產生錯誤訊息。
4.在 (中分鐘為單位) 的重新整理 CPU 使用量數字] 方塊按一下向上和向下箭號,以設定重新整理速率]。
5.在 動作執行時的 CPU 使用率超過最大 CPU 的使用] 方塊按一下 [為指定的應用程式集區適當的動作]:
按一下 [否執行 IIS 當指定的應用程式集區達到最大的 CPU 使用率時,Windows 事件記錄檔中產生錯誤。
按一下 [關機] 來關閉應用程式集區。按一下 [關機] 來終止其主應用程式背景工作處理序停止有問題的應用程式。
6.按一下 [套用],然後再按一下 [確定]。
更多有關 CPU 監控,請參閱"啟用 CPU 監視 」 在 [網際網路資訊服務 6.0 管理員快速入門] 中的主題。
限制 Web 站台連線
限制個別網站的可用連接數目。要這麼做,請您執行下列步驟:
1.啟動 [網際網路服務管理員]。
2.展開 server name,其中 server name 」 是 Web 伺服器的名稱。
3.您想要限制的網站上按一下滑鼠右鍵,再按 [內容]。
4.按一下 [效能] 索引標籤,然後按一下 [連線限制為]。
5.在 [連線限制為] 方塊鍵入您想要允許的連線數目。
附註每個連線的用戶端使用大約四個的同時連線。為 200 的連線限制,例如允許大約 50 使用者存取的網站。
6.按一下 [確定],然後結束 [Internet 服務管理員。
使用 HTTP 持續作用
預設情況下,會啟用 HTTP 的持續作用 的使用。若要確認已啟用 HTTP 的持續作用,請依照下列步驟執行:
1.啟動 [網際網路服務管理員]。
2.展開 server name,其中 server name 」 是 Web 伺服器的名稱。
3.您想要修改的網站上按一下滑鼠右鍵,再按 [內容]。
4.按一下 [網站] 索引標籤,再按一下以選取 [啟用的啟用 HTTP 持續作用] 核取方塊,然後按一下 [確定]。
5.結束 [網際網路服務管理員]。
停用 Windows Server 2003 就不需要專用的 Web 伺服器的服務。要這麼做,請您執行下列步驟:
1.按一下 [開始],指向 [程式集]、 指向 [系統管理工具],然後再按一下 [電腦管理]。
2.在 [電腦管理 (本機)],展開 [服務及應用程式,然後按一下 [服務]。
在 [狀態] 欄標籤為正在執行每個服務 」 已啟動。在專用的 Web 伺服器上不需要下列服務:
警示器
[剪貼本]
電腦瀏覽器
DHCP 用戶端
DHCP 伺服器
傳真服務
檔案複寫
紅外線監視器
網際網路連線共用
信差
NetMeeting 遠端桌面共用
網路 DDE
網路 DDE DSDM
NWLink NetBIOS
NWLink IPX/SPX
列印多工緩衝處理程式
TCP/IP NetBIOS 協助程式服務
電話語音
Telnet
不斷電供電系統
3.請注意依存於您想要停用每個服務的服務。要這麼做,請您執行下列步驟:
連按兩下您想要停用的服務。
按一下 [依存性] 索引標籤。
這個服務依存在下列系統元件上] 清單中請注意這項服務而定的服務。
下列的系統元件依賴此服務] 清單中請注意不能啟動,而這項服務的服務。
按一下 [確定]。
4.一次停用您所選取每個服務。要這麼做,請您執行下列步驟:
您想要停用的服務上按一下滑鼠右鍵,然後按一下 [內容]。
在 [啟動類型] 清單中,按一下 [已停用]。
如果您想要立即停止服務,按一下 [停止]。如果出現 [停止其他服務] 對話方塊,注意其他相依服務,將也停止],再按
[是]。
按一下 [確定]。
5.重複步驟 4,以停用其他非必要的服務。
備忘稿
停用每個服務,以確定您不關閉您想要繼續使用的服務之後,請測試 Web 伺服器正確操作。
如果網際網路資訊服務 (IIS) 伺服器是 Windows Server 2003 網域的成員,您必須在您的系統正確地將群組原則
套用到電腦上要有 TCP/IP 協助程式服務。
當您停用 DHCP 用戶端時,DHCP 用戶端會停止動態 DNS 登錄。 這會停用 DNS 動態更新通訊協定,而且需要手動要新
增為這個用戶端在 DNS 伺服器的 DNS 記錄。
最佳化網路應用程式的資料輸送量
在工作記憶體中執行 IIS 6.0 程序可分頁程式碼。要這麼做,請您執行下列步驟:
1.在 Windows 檔案總管中用滑鼠右鍵按一下 [網路上的芳鄰],然後按一下 [內容]。
2.您要最佳化的區域連線] 上按一下滑鼠右鍵,然後按一下 [內容]。
3.這個連線使用下列項目] 清單中按一下 (但不要清除其核取方塊) 檔案和印表機共用的 Microsoft 網路,然後按一下 [內容。
4.按一下 網路應用程式的最大值的資料輸送量,按一下 [確定],然後再按一下 [關閉]。
將背景服務的效能最佳化
IIS 6.0 處理序 (Inetinfo.exe) 執行為背景服務。 如果要增加背景服務的效能,請依照下列步驟執行:
1.按一下 [開始],按一下 [控制台],然後再按一下 [系統]。
2.按一下 [進階] 索引標籤,然後按一下 [效能] 下的 [設定]。
3.按一下 [進階] 索引標籤,按一下 [背景服務],然後再按兩次 [確定]。
停用 IIS 6.0 記錄
除非需要它停用登入網站、 虛擬目錄和檔案和資料夾。要這麼做,請您執行下列步驟:
1.按一下 [開始],指向 [程式集]、 指向 [系統管理工具],然後再按一下 [網際網路資訊服務 (IIS) 管理員]。
2.展開 server name,其中 server name 」 是 Web 伺服器的名稱。
3.找出您想要修改、 項目上按一下滑鼠右鍵,然後按一下 [內容] 項目 (網站、 虛擬目錄或實體目錄)。
4.執行下列其中一項:
如果您選取 [在網站上按一下 [主目錄] 索引標籤。
-或
如果您選取 [虛擬目錄按一下 [虛擬目錄] 索引標籤。
-或
如果您選取 [實體目錄按一下 [目錄] 索引標籤。
5.按一下以清除 [記錄瀏覽] 核取方塊,然後按一下 [確定]。
若要停用整個 Web 站台的記錄,按一下 [網站] 索引標籤,按一下以清除 [啟用記錄] 核取方塊,然後按一下 [確定]]。
6.結束網際網路資訊服務 (IIS) 管理員]。
啟用頻寬節流設定
限制可用於個別網站的網路頻寬。要這麼做,請您執行下列步驟:
1.按一下 [開始],指向 [程式集]、 指向 [系統管理工具,然後再按一下 [Internet 服務管理員]。
2.展開 server name,其中 server name 」 是 Web 伺服器的名稱。
3.您想要修改的網站上按一下滑鼠右鍵,再按 [內容]。
4.按一下 [效能] 索引標籤,然後按一下以選取 到此網站可用的網路頻寬限制] 核取方塊。
5.在 [最大頻寬] 方塊輸入新的值,然後再按一下 [[確定]。
6.結束 [網際網路服務管理員]。
啟用 CPU 監視
啟用監視監視及自動關機會耗用大量的 CPU 時間的工作者處理序的 CPU。要監視的 CPU 請依照下列步驟執行:
1.在網際網路資訊服務 (IIS) 管理員,展開本機電腦、 展開 [應用程式集區] 資料夾,用滑鼠右鍵按一下應用程式集區,您想要在啟用 CPU 帳戶處理,然後按一下 [內容]。
2.按一下 [效能] 索引標籤,然後按一下以選取 [啟用 CPU 監視] 核取方塊。
3.在 最快的 CPU 使用] 方塊按一下向上和向下箭號,以設定您想要使用應用程式集區的 CPU 的最大的百分比]。
如果應用程式集區使用超過指定的最大值,IIS 會在 Windows 事件記錄檔中產生錯誤訊息。
4.在 (中分鐘為單位) 的重新整理 CPU 使用量數字] 方塊按一下向上和向下箭號,以設定重新整理速率]。
5.在 動作執行時的 CPU 使用率超過最大 CPU 的使用] 方塊按一下 [為指定的應用程式集區適當的動作]:
按一下 [否執行 IIS 當指定的應用程式集區達到最大的 CPU 使用率時,Windows 事件記錄檔中產生錯誤。
按一下 [關機] 來關閉應用程式集區。按一下 [關機] 來終止其主應用程式背景工作處理序停止有問題的應用程式。
6.按一下 [套用],然後再按一下 [確定]。
更多有關 CPU 監控,請參閱"啟用 CPU 監視 」 在 [網際網路資訊服務 6.0 管理員快速入門] 中的主題。
限制 Web 站台連線
限制個別網站的可用連接數目。要這麼做,請您執行下列步驟:
1.啟動 [網際網路服務管理員]。
2.展開 server name,其中 server name 」 是 Web 伺服器的名稱。
3.您想要限制的網站上按一下滑鼠右鍵,再按 [內容]。
4.按一下 [效能] 索引標籤,然後按一下 [連線限制為]。
5.在 [連線限制為] 方塊鍵入您想要允許的連線數目。
附註每個連線的用戶端使用大約四個的同時連線。為 200 的連線限制,例如允許大約 50 使用者存取的網站。
6.按一下 [確定],然後結束 [Internet 服務管理員。
使用 HTTP 持續作用
預設情況下,會啟用 HTTP 的持續作用 的使用。若要確認已啟用 HTTP 的持續作用,請依照下列步驟執行:
1.啟動 [網際網路服務管理員]。
2.展開 server name,其中 server name 」 是 Web 伺服器的名稱。
3.您想要修改的網站上按一下滑鼠右鍵,再按 [內容]。
4.按一下 [網站] 索引標籤,再按一下以選取 [啟用的啟用 HTTP 持續作用] 核取方塊,然後按一下 [確定]。
5.結束 [網際網路服務管理員]。
於
晚上11:44

2010年12月13日 星期一
Javascript 相對路徑 設定概念
C:\AppServ\www\azole\index.php
C:\AppServ\www\azole\images\test.jpg
C:\AppServ\www\azole\auto\auto.php
對index.php來說,我要引用那個圖片跟link到auto.php,要寫
或是 
.\ 是指自己這個檔案夾,所以他的意思是說到自己這個檔案夾裡的images這個檔案夾去抓test.jpg
auto
如果是auto.php要引用,就要這樣寫

..\是上一層的意思,去我的上一層(就到了C:\AppServ\www\azole\)去找images這個檔案夾,在去裡面抓test.jpg這張圖。
大概就是這樣囉,記得是相對於自己的位置就好囉。
C:\AppServ\www\azole\images\test.jpg
C:\AppServ\www\azole\auto\auto.php
對index.php來說,我要引用那個圖片跟link到auto.php,要寫


.\ 是指自己這個檔案夾,所以他的意思是說到自己這個檔案夾裡的images這個檔案夾去抓test.jpg
auto
如果是auto.php要引用,就要這樣寫

..\是上一層的意思,去我的上一層(就到了C:\AppServ\www\azole\)去找images這個檔案夾,在去裡面抓test.jpg這張圖。
大概就是這樣囉,記得是相對於自己的位置就好囉。
於
晚上11:53

2010年12月9日 星期四
修改 系統內容裡的[授權給]標示文字
若要更改xp系統內容裡的授權給,需修改以下登錄檔,
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
1.於『開始』–>『執行』輸入regedit。
2.找到\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
修改RegisteredOrganization及RegisteredOwner即可。
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
1.於『開始』–>『執行』輸入regedit。
2.找到\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
修改RegisteredOrganization及RegisteredOwner即可。
於
晚上7:29

讓 VISTA 的網路芳鄰 (LAN) 恢復 GB LAN 應有的速度
於 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters]下修改 dword "DisabledComponents" 的值(如果沒有請手動新增),設定數值的意義如下 --
1 = 停用通道介面
2 = 停用 v6 轉 v4
3 = 停用 ISATAP
8 = 停用 Teredo
16 = 停用 LAN 與 PPP 介面
32 = 提高 IPv4 的優先權
255 = 完全停用 IPv6 (我用這個)
1 = 停用通道介面
2 = 停用 v6 轉 v4
3 = 停用 ISATAP
8 = 停用 Teredo
16 = 停用 LAN 與 PPP 介面
32 = 提高 IPv4 的優先權
255 = 完全停用 IPv6 (我用這個)
於
上午9:34

2010年12月7日 星期二
訂閱:
文章 (Atom)