メタデータのキャッシュ
このセクションでは、メタデータのキャッシュを有効にする方法とメタデータキャッシュを更新する方法について説明します。
データをクエリできるようになる前に、コネクタは関連するメタデータを取得する必要があります。デフォルトでは、メタデータはメモリにキャッシュされ、接続間で共有されます。しかし、プロセスにまたがって保持したい場合、またはメタデータ要求が高負荷の場合は、解決策はメタデータをディスクにキャッシュすることです。
メタデータキャッシュの有効化
メタデータのキャッシュを有効にするには、CacheMetadata をtrue に設定し、接続文字列の設定方法についてはキャッシュ接続の設定 を参照してください。本製品 は、メタデータが初めて必要になったときにメタデータをキャッシュし、それ以降のリクエストでは、そのメタデータを使用します。
メタデータキャッシュの更新
メタデータはキャッシュされるため、ライブソース上のメタデータに対する変更(カラムや属性の追加や削除など)は、メタデータキャッシュに自動的には反映されません。ライブメタデータを更新するには、キャッシュされたデータをdelete またはdrop する必要があります。
コードからのメタデータキャッシュ
以下のコードを使用して、メタデータキャッシュを構築できます。これは、Entity Framework のデータプロバイダーを使用する場合に特に役立ちます。
C#
String connectionString = "Cache Location=C:\\cache.db;Cache MetaData=True;User=MyUser;Password=MyPassword;URL=https://hxehost:51027/euro.xsodata;"; using (SAPHanaXSAConnection conn = new SAPHanaXSAConnection(connectionString)) { conn.Open(); DataTable table = conn.GetSchema("Tables"); Console.WriteLine("Total number of tables found: " + table.Rows.Count); foreach (DataRow row in databaseSchema.Rows) { foreach (DataColumn column in databaseSchema.Columns) { Console.WriteLine(row[column]); } } Console.WriteLine(); Console.WriteLine("All tables cached."); }
VB.NET
Dim connectionString As String = "Cache Location=C:\\cache.db;Cache MetaData=True;User=MyUser;Password=MyPassword;URL=https://hxehost:51027/euro.xsodata;" Using conn As New SAPHanaXSAConnection(connectionString) conn.Open() Dim databaseSchema As DataTable = conn.GetSchema("Tables") Console.WriteLine("Total number of tables found: " + databaseSchema.Rows.Count.ToString()) For Each row As DataRow In databaseSchema.Rows For Each column As DataColumn In databaseSchema.Columns Console.WriteLine(row(column)) Next Next Console.WriteLine() Console.WriteLine("All tables cached.") Console.ReadKey() End Using