プリフェッチ・キャッシュを最適化または無効化する

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

適用対象

Content Delivery、Content Management

プリフェッチ・キャッシュは、アプリケーションの起動時に最初に入力され、アプリケーションの存続期間中も引き続き格納されます。プリフェッチする項目のリストは、<wwwroot>/App_Config/Prefetch/ フォルダ内の設定ファイルでデータベースごとに定義されます。

メモ

プリフェッチ キャッシュの初期作成の最適化と無効化の詳細については、アプリケーションの再起動後のコア データベースへの過剰な負荷 に関するナレッジ ベースの記事を参照してください。

プリフェッチする項目が多すぎると、SQLサーバーの負荷が増加し、アプリケーションの起動時間が短くなる可能性があります。これを回避するには、次の方法があります。

  • プリフェッチ・キャッシュの初期作成を最適化します。

  • プリフェッチ・キャッシュの初期作成を無効にします。

プリフェッチ・キャッシュの初期作成を最適化する

プリフェッチ・キャッシュの初期作成を最適化するには、最も頻繁にアクセスされる項目のみを含めます。

次の要素を使用して、含まれるアイテムを決定します。

要素

形容

複数の要素が許可されます

<template>

この要素には、特定のテンプレートに基づくすべてのアイテムが含まれます。

はい

<item>

この要素には、指定した項目が含まれます。

はい

<children>

この要素には、指定したアイテムの子アイテムが含まれます。

はい

<childLimit>

この要素は、各親項目に対してキャッシュできる子項目の数を制限します。

いいえ

次に、Prefetch caches構成要素を含むサンプル・パッチ・ファイルを示します。

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/"
               xmlns:set="http://www.sitecore.net/xmlconfig/set/"
               xmlns:role="http://www.sitecore.net/xmlconfig/role/">
    <sitecore>
        <databases>
            <database id="web">
                <dataProviders>
                    <param desc="headProvider">
                        <dataProvider param1="$(id)">
                            <prefetch hint="raw:AddPrefetch">
                                <template desc="sample">{<template GUID="">}</template>
                                <item desc="root">{<item GUID="">}</item>
                                <children desc="main sections">{<item GUID="">}</children>
                                <childLimit>100</childLimit>
                            </prefetch>
                        </dataProvider>
                    </param>
                </dataProviders>
            </database>
        </databases>
    </sitecore>
</configuration>

グループを使用してプリフェッチ要求を分割する

グループを使用すると、プリフェッチ・キャッシュの初期作成を高速化し、データベース・タイムアウト例外を防ぐことができます。

デフォルトでは、プリフェッチ・キャッシュの初期作成は1つのSQL要求として実行されます。この初期母集団は、要素をグループ化することで、複数の並列要求に分割できます。

group属性を使用して要素をグループ化できます。group属性は、templateitem、およびchildren属性と共に使用できます。

同じグループと要素タイプの要素は、一緒にプリフェッチされます。要素のgroup属性が指定されていない場合は、既定のグループが使用されます。

次に示すのは、uiグループとdictionaryグループを、2つの個別の要求が並行して実行されるときにプリフェッチするサンプルです。

<template group="ui" desc="tool button new line">{6400BD3F-E8A1-4C38-8319-131448492439}</template>    
<template group="ui" desc="toolbar">{3A1A3B48-3434-4E5A-8F05-AD6E1687D888}</template>    
<template group="dictionary" desc="dictionary folder">{267D9AC7-5D85-4E9D-AF89-99AB296CC218}</template>    
<template group="dictionary" desc="dictionary entry">{6D1CD897-1936-4A3A-A511-289A94C2A7B1}</template>

プリフェッチ・キャッシュの初期作成を無効にします

プリフェッチ キャッシュの初期作成を無効にしても、訪問者がアイテムにアクセスしたときにキャッシュは入力されます。

初期入力を無効にするには:

  1. configuration/sitecore/databases/database/dataProviders/dataProvider/prefetch要素の下にあるすべての要素を<patch:delete />要素に置き換えます。

  2. 次のグローバル要素を持つ新しい <prefetch> 要素を追加します。

    要素

    形容

    必須

    <cacheSize>

    このエレメント は、最大初期プリフェッチ・キャッシュ・サイズを構成します。指定しない場合、デフォルトではCaching.DefaultDataCacheSize設定の値になります。

    いいえ

    <childLimit>

    この要素は、各親項目に対してキャッシュできる子項目の数を制限します。

    はい

    <logStats>

    この要素をtrueに設定すると、高度な診断情報は次のようにログに記録されます。

    Count: <number of added items>, Template: <template GUID>

    はい

次に、Prefetch caches構成要素を含むサンプル・パッチ・ファイルを示します。

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/"
               xmlns:set="http://www.sitecore.net/xmlconfig/set/"
               xmlns:role="http://www.sitecore.net/xmlconfig/role/">
    <sitecore>
        <databases>
            <database id="web">
                <dataProviders>
                    <param desc="headProvider">
                        <dataProvider param1="$(id)">
                            <prefetch hint="raw:AddPrefetch">
                                <patch:delete />
                            </prefetch>
                            <prefetch hint="raw:AddPrefetch">
                                <cacheSize>1000MB</cacheSize>
                                <childLimit>100</childLimit>
                                <logStats>false</logStats>
                            </prefetch>
                        </dataProvider>
                    </param>
                </dataProviders>
            </database>
        </databases>
    </sitecore>
</configuration>
この記事を改善するための提案がある場合は、 お知らせください!