Wordでの重複問合せによるリフレッシュの遅延
多数の問合せが含まれ、かつOracle Smart View for Officeリリース11.1.2.5.520より前に作成された一部のWordドキュメントでは、ドキュメント内のデータをリフレッシュする際にパフォーマンスの問題が生じる可能性があります。場合によっては、既存の問合せを再利用するかわりに(該当する場合)、Wordドキュメント内の各Smart Viewデータ・ポイントが別の問合せとして処理されます。結果として、リフレッシュ操作に非常に時間がかかる可能性があります。
ドキュメントに多くの重複問合せ(つまり、同じ名前の問合せ)が含まれている場合、Wordの「ドキュメント・コンテンツ」ペインに重複問合せが表示されます。たとえば、「ドキュメント・コンテンツ」は次のようになります。
![重複問合せの長いリストを示す「ドキュメント・コンテンツ」ペイン 重複問合せの長いリストを示す「ドキュメント・コンテンツ」ペイン](img/dup_queries_before_macro.jpg)
重複問合せは、SmartView14446361770
とSmartView14446541490
です。
次のVisual Basicマクロを実行して、重複問合せを削除できます。
Sub DeleteExtraQueries()
'
' DeleteExtraQueries Macro
'
Dim queriesName As Variant
Dim uniqueQueriesName As New Collection
Dim varName, newList As String
Set vars = ActiveDocument.Variables
For i = 1 To vars.Count
varName = vars.Item(i).Name
If Not StrComp(vars.Item(i).Name, "SV_QUERY_LIST", vbTextCompare) Then
List = vars.Item(i).Value
queriesName = Split(List, "<|>")
On Error Resume Next
For Each queryName In queriesName
uniqueQueriesName.Add queryName, queryName
Next
newList = ""
For Each queryName In uniqueQueriesName
newList = newList & queryName & "<|>"
Next
newList = Left(newList, Len(newList) - 3)
vars.Item(i).Value = newList
End If
Next
End Sub
マクロの実行後、2つの問合せ(SmartView14446361770
とSmartView14446541490
)は、「ドキュメント・コンテンツ」に一度だけ表示されます。
![それぞれの問合せが一度ずつ表示された「ドキュメント・コンテンツ」ペイン それぞれの問合せが一度ずつ表示された「ドキュメント・コンテンツ」ペイン](img/dup_queries_after_macro.jpg)