程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 詳解ASP.NET中Membership表和阻止DOS攻擊

詳解ASP.NET中Membership表和阻止DOS攻擊

編輯:關於ASP.NET

無需關閉站點的情況下如何查詢ASP.NET 2.0 Membership表

這種查詢會爽快的運行在你的開發環境中:

Select * from aspnet_users where UserName = 'blabla'

或者在無需任何問題的情況下獲得一些用戶的 profile :

Select * from aspnet_profile where userID = '…...'

甚至你可以像這樣在aspnet_membership表中輕松的更新用戶的郵件地址:

Update aspnet_membership 
SET Email = '[email protected]' 
Where Email = '…'

但是當在你的產品服務器上有一個巨大的數據庫時,運行這些腳本都會搞垮你的服務器。理由就是, 雖然這些查詢看起來明顯是你經常使用的語句,但是這些語句沒有任何索引。因此,上面所有在"Table Scan"中的結果(很糟糕的查詢方式)都會響應數百萬行記錄。

這裡的現象對我們而言意味著什麼。我們使用了這些字段諸如UserName, Email, UserID, IsAnonymous等。關於Pageflakes的很多市場報表。這些報表中的一些僅僅市場部可以使用,其他人都不 可以使用它。現在,站點運行得很好,但是市場部一天當中會使用它很多次而且用戶常常打電話告訴我們 網站太慢了,”用戶報告網站性能十分地慢!”,一些頁面甚至還發生超時等現象。

常常,當他們打電話個給我們的時候,我們就會告訴他們“稍等,馬上檢查”,然後我們開始對整個 網站進行檢查。我們使用SQL profiler工具來查看到底那裡出錯了。但是我們不能找到任何問題。 Profiler顯示了查詢運行的摁件。CPU負載位於適當的參數范圍內。站點運行得很好,很流暢。我們打電 話給他們,“我們不能查到任何問題,到底怎麼了?”。

因此,當我們試圖調查這個問題並且在我們沒有調查時,發現站點真的變得很慢的時候,為什麼我們 不能看到它變慢的任何問題?

市場部有時候每天需要很多次運行一些分析報表來查詢數據。無論什麼時候他們執行這些查詢,當這 些字段都是不是索引時,它會使得服務器的IO吞吐量更高以及CPU的使用率增高:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved