ASP最適化、ASPキャッシュテクノロジー
1。ASPキャッシュとは何ですか/なぜキャッシュ
ASPテクノロジーの初期にWebサイトが確立されると、ASPダイナミックWebテクノロジーがもたらす利便性と、ランダムな変更された無料のHTTPコントロールを感じることができます。ただし、訪問数が増えると、サイトへのアクセスが遅くなり、IISがますます頻繁になっていることがわかります。次に、より良いデータベースの交換、インデックスの確立、ストレージ手順の書き込みなど、ASPを最適化する必要があります。これらの手段の一部はコスト圧力を上げる必要はありませんが、コスト圧力(SQLへのクラスターアクセスなど)の一部であり、その効果は必ずしもそうではありません。
Webアクセスのプレッシャーに直面して、最も経済的な方法は、キャッシュ最適化テクノロジーを使用してWebのサービス圧力を緩和することだと思います。
通常、Webアクセス量の増加は、次のリソース需要の急速な成長を意味します。
1.ネットワークカードトラフィックの増加には、より多くのCPU処理ネットワークトラフィックとネットワークI/Oスレッドを消費する必要があります。
2.データベース接続をより頻繁に開閉する/閉じる必要があります(データベーステクノロジーが使用される場合 - ASPはデータベースをデータストレージとして使用します)、リソースを真剣に消費するものの数、およびの競合リソースによって引き起こされるデッドロックネットワークI/OまたはCPU消費を増やすトランザクション。
3.セッションを使用すると、IISはステータスを維持するためにより多くのメモリを消費し、メモリ消費は物理的なメモリと補助メモリ間の頻繁な交換を引き起こし、コードの実行を停止します
4.アクセスのタイムリーな応答により、Webページアクセスの障害が発生し、ユーザーが更新され、CPU、メモリ、その他のリソースのニーズが悪化します。
実際、通常のWebアプリケーションを考慮すると、動的コードの実行は何度も不要です。
2。ASPキャッシュの分類
許可なしに要約すると、ASPのキャッシュは2つのカテゴリに分けることができます。
1。ファイルキャッシュ
SO -CALLED FILE CACHEは、一定期間、特定のASPの特定の実行が大きく変更され、クライアントが大幅に変更されます。 Webリダイレクトからテクノロジーへの静的ファイルにアクセスして、CPU、データベースリソースの削減のニーズを満たすことができます。たとえば、多くのフォーラムは、ステッカーに返信するときに静的ファイルを再生成し、Donews.comのフォーラムなどをリダイレクトします。 Castleには副作用(利点)があります。これは、Googleなどの検索エンジンで簡単に含めることができます。この技術を採用しているSO -Caled Pressリリースシステムが採用されています。
2。ファイルフィルムブレイクキャッシュ
SO -Caled File Cacheは、データの一部(通常、リソースを消費するために消費する必要がある大規模なデータベースクエリ)にも基づいています。ファイルの形式のデータ。データベースの負担が増加しないように、ファイルを読み取ることができます。たとえば、通常、いくつかのデータをXML形式で保存し、XSLTテクノロジーを使用してディスプレイを実装します(XML処理には通常、大量のCPUリソースが必要なため、通常、IEはクライアントにXMLを直接読み取り、顧客のCPUで処理します)。これがCSDNのフォーラムの処理方法です。
3。メインメモリキャッシュ
さらに、メモリ内のキャッシュを扱うことを検討し、メモリにタイムリーに応答する必要があるコンテンツを保存することもできます。多数のアクセスニーズがいくつかの小さなページまたはメインストレージに集中している場合、メインメモリキャッシュを使用してWebアクセスパフォーマンスを大幅に改善したいと思います。
3.キャッシュを達成/使用する方法
キャッシュを実装するには、次の問題を考慮する必要があります。
1.短時間でどのページが変更されませんか?
独自のサイトを分析してください。多くのページがあります。たとえば、サイトには通常、これらの列がサイトメンテナンス担当者の特定の時間に公開されています。これらのページは、静的ファイルを使用したキャッシュに適しています。実際、SO -Caled Pression -Releaseシステムが完了しているため、これらのシステムのアイデアを参照して、元の動的ASPページを変換することもできます。
2。これらのページは、すべての訪問に対して生成され、同じロジックを生成します(つまり、訪問者を区別するのではなく)。
ニュースや情報などの列を除いて、すべての訪問者がインターフェイスを見て、フォーラムやその他の消費リソースなどのリソースの適用は一般に統一ロジック生成として設計できます(同じ投稿、Zhang Sanli、Sisiは同じです)。また、サーバーの処理能力、つまり処理用のクライアントブラウザに加えて、データを破壊し、スクリプトテクノロジーを使用することを検討することもできます。
3.キャッシュのコストと収穫を使用します。
主にスペースの変更の時間(応答)。キャッシュテクノロジーを使用して、Webサーバーの応答能力を向上させるために頻繁に必要なコンテンツを事前に処理し、さらに重要なことに訪問者の好意を獲得します。
価格は、Webスペースの需要が増加し、アクセス効果に影響を与える可能性があることです。
しかし、適切なキャッシュは欠点よりも大きいと思います。
4。これらの場所でキャッシュを使用する代わりに
ダイナミッククエリページ、各人のクエリコンテンツは異なるため、ディスプレイの結果が同じではないため、クエリ結果キャッシュを生成する可能性は低いため、キャッシュはより複雑で、キャッシュ利用率の下部にあるため、管理コストは1,000クエリキーワードで、これらのキーワードの管理に対応することも面倒です)。
第4、インスタンス分析
提案フォーラムの元のレイアウトが次のとおりであるとします。
ルートディレクトリ:
Default.aspホームページ、一般的にエッセンス、推奨など
ListBorad.aspこのファイルは、すべての列の名前と紹介をリストします。
ListThread.aspファイルは、すべてのステッカーを示すパラメーターを搭載しておらず、特定のピースのすべてのステッカーを表すためにMainBidを運びます。特定の列のポストを示すためにSubbidが運ばれている場合。ページパラメーターを携帯してトピックのパジネーションを示す場合。
ViewThread.aspは、特定のステッカーコンテンツをリストします。投稿はスピーチとして表示され、すべてがステッカーの後ろにリストされていると仮定します。 IDパラメーターは、表示される投稿です。
Reply.aspは特定の投稿に応答し、パラメーターIDを携帯して特定の投稿に応答します
他の議論はありません。
上記では、それらのすべてが元のASP/PHPを使用して行われた場合、ほぼすべてのASPファイルの実行にはデータベース操作、頻繁なクエリ、および複数のクエリが必要であることがわかります。クエリデータベースが最終的にパフォーマンスの低下をもたらし、応答速度が低下し、訪問者への閲覧の影響が遅いことがWebの品質を助長しないことが知られているはずです。さらに重要なことに、AとBの2人について、IDが一貫している場合、ViewThread.aspなどにアクセスしましたが、多くの場合、同じコンテンツが表示されます(ブラウザで受信したHTMLコードはほぼ同じです)が、これは同じコンテンツで、データベース接続を開き、クエリ、レコードの読み取り、レコードとデータベース接続が閉じられていることを示す必要があります。エッセンスエッセンスエッセンスより多くの人々がより多くの人々からアクセスされる場合、最終結果は、これらの人々がサーバーリソースを悪化させることです。実際、同じコンテンツの重複労働は、キャッシュテクノロジーで最適化できます。例えば:
repy.aspのコンテンツを送信した後、viewthread_xxxx.htmなどの静的HTMLファイルに静的コンテンツを生成するために、静的関数を呼び出し、次にviewthread.aspにアクセスすると、システムは自動的にリダイレクトされます対応する静的ファイルViewThreadxxx.htm。このようにして、投稿が最新のものではない場合は、新しい提出物が常に最新のものになります。
ListBorad.aspも静的を実装できます。運ばれる可能性のあるパラメーターを分析し、キャッシュファイル名をListBoard_xx.htmに設定し、新しい列を追加するときにListBoard_xxx.htmを更新できます。 ListThread.aspは似ていますが、パラメーターが多いため、多くのキャッシュファイルがあります。 listthread.asp = xxx&page = 2をキャッシュする場合、対応する静的ファイルはlistthread_xxx_p2.htmです。 Default.aspにも同じことが言えます。
では、いつ更新するかを判断する方法は?更新するのは何時ですか?
distthread.asp?subbid = xxx&page = 2、distthread.asp静的ファイル。ここに存在することは、新しいコンテンツの出現が更新する必要があることを意味しないことに注意してください。
ファイルはどのように存在しませんか?消去。新しいステッカーを公開したり、ステッカーを削除したり、ステッカーを移動するときに、listthread_xxx_p2.htmなどのすべての静的ファイルを削除できます。このようにして、キャッシュに通知されます。
まだ1つの問題が残っています。静的ファイルを生成する方法は?
前に言及したのと同じコンテンツがあることに気付きました。 defayour.asp、listthread.asp SubID = 123のアクセス結果は同じコンテンツになります)。そのため、静的ファイルを生成する必要性のロジックでは、Webアクセス要求による変更の前にコピーを呼び出し、HTMLコードを取得し、それを保存します。静的ファイル。このWebリクエストは、実際のビューアが静的コンテンツにアクセスする前に実際に同等です。サーバー自体は、出力されるHTMLによって検査され、これらのコードを返してファイル操作機能を静的ファイルとして保存します。このようにして、キャッシュファイルは実際の視聴者の前に作成されました。
このようなスキームは、元のレイアウトにほとんど触れず、変換のために404などのエラーを引き起こすことはほとんどありません。第二に、静的ファイルは、Googleなどの検索エンジンによってサイトを簡単に含めるのにも役立ちます。なぜだめですか?
最後に、ASPプログラミング環境でWebアクセスを通じて、多くの人がXMLHTTPコンポーネントを使用してアクセスし、多くの問題を引き起こすことを思い出させてください。 XMLHTTP自体が要求をキャッシュするリソースにより、このコンポーネントを介してリクエストによって取得されたコンテンツが得られ、論理的な混乱が生じます。したがって、XML Server HTTPオブジェクトまたはWinHTTPコンポーネントを選択して、Webリクエストリソースを実装する必要があります。
ASPでキャッシュテクノロジーを使用すると、実際には、これらの実装方法が非常に簡単です。
これらのテクノロジーを導入する前に、ASPのキャッシュテクノロジーとは何かを説明しましょう。
SO -Called Cacheは、キャッシュを使用してデータを保存するためのスペースを開いています。クエリアクションを実行してクエリ結果をキャッシュに入れたら、すぐにデータをすばやくアクセスできます。また、データをキャッシュに入れない場合、このクエリを再度実行すると、サーバーはデータベースからプロセスを消費してソートします。
データがキャッシュに保存されると、再びクエリが再度クエリするときにかかる時間は、主にデータの表示時にあります。
つまり、サーバーのキャッシュに変更する必要があることが多いデータを配置する必要がありますが、キャッシュにアクセスすることが多いデータを配置する必要があります。
次に、最初にサーバーでASPを使用する手法について説明します。
キャッシュテクノロジー。
クライアントに多くのデータ(静的、つまり、変更が少ない)を表示する必要がある場合は、サーバーでキャッシュテクノロジーの使用を検討できます。このテクノロジーは、ディスプレイスタイルの一貫性が強いウェブサイトに特に適しています。
実際、実装方法は特に簡単です。
これは、本の分類を表示する例です
displaybooks.aspファイル:
<%@言語= javas
cript%>
<html>
<body>
<form method = post>
本の分類;
<p>
<入力タイプ=送信>
<%
関数getbookslistbox()()
{{
bookslistbox = application(bookslistbox)
if(bookslistbox!= null)return bookslistbox;
crlf = string.fromCharcode(13、10)
bookslistbox = <select name = books> + crlf;
sql = select * from books by name;
cnnbooks = server.createObject(adodb.Connection);
cnnbooks.open(books、admin、);
rstbooks = cnnbooks.execute(sql);
fldbookname = rstbooks(bookname);
while(!rstbooks.eof){
bookslistbox = bookslistbox + <option> +
fldbookname + + crlf;
rstbooks.movenext();
}
bookslistbox = bookslistbox +
Application(BooksListBox)= BooksListBox
bookslistboxを返します。
}
%>
それは非常にシンプルです。実際、非常にシンプルなアプリケーションテクノロジーを使用しており、違いは1つの文にあります。
Application(BooksListBox)= BooksListBox
サーバー上のリクエストの数が大幅に削減されることを確認できます。この状況は、1回だけ更新される(または長い時間)更新されるなど、それらの更新としてそれほど頻繁ではないWebサイトに特に適しています。
クライアントキャッシュテクノロジーについて議論しましょう。このテクノロジーは、主にユーザーパスワード、コードコードなどのユーザーの個人情報を保存するために使用されます。主にADOのいくつかの属性を使用しています。同時に、一部のネチズンは、ADOオブジェクトをADOオブジェクトで使用できるかどうかについて言及しています。説明は明確ではありません。コードを以下に示してみましょう。
ファイルGlobal.asa:
<
ファイル/システム/ADO/MSADO15.DLL->
<スクリプト言語= vbscript runat = server>
sub application_onstart
sql = userinfoからユーザー名、パスワードを選択します
cnnusers = dsn = user
rsusers = server.createObject(adodb.Recordset)を設定します
'次の2つの文は、接続の切断に利用できるADOテクノロジーを実現するために使用されていることに注意してください。
rscsomomersorsorlocation = aduseclient
rscosomers.open sql、cnnadvworks、adopenstatic、adlockreadonly
'レコードセットとデータベースの接続を破る
rscosomers.activeconnection = Nothing
アプリケーション(rscustomers)= rscustomersを設定します
End Sub
file users.asp
<%
'クローンメソッドにより、各ユーザーにレコードセットコレクションがあります
set yoursers = application(rsusers).clone
set username = yourusers(username)
パスワードを設定= yourusers(パスワード)
owner.eofをUNILで実行します
%>
ユーザー名:<%= username%>ユーザーパスワード:<%= password%>
<%
yourusers.movenext
ループ
%>