11

私は現在 Tridion 2011 をテストしており、(外部ではなく) アップロードされたコンテンツでマルチメディア コンポーネントを作成する際に問題が発生しています。

タイトル、スキーマ、マルチメディア タイプを入力し、システムからファイルを選択して [保存] をクリックします。情報メッセージが表示されSaving item...、約 30 秒後にThe wait operation timed outメッセージが表示されます。

C:\Program Files (x86)\Tridion\logディレクトリにエラー メッセージはないようです。イベント ビューアを見ると、保存アクションに関する次の情報が表示されます。

Unable to save Component (tcm:4-738361).
The wait operation timed out

Error Code:
0x8004033F (-2147220673)

Call stack:
System.Data.SqlClient.SqlConnection.OnError(SqlException,Boolean,Action`1)
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException,Boolean,Action`1)
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject,Boolean,Boolean)
System.Data.SqlClient.TdsParser.TryRun(RunBehavior,SqlCommand,SqlDataReader,BulkCopySimpleResultSet,TdsParserStateObject,Boolean&)
System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader,RunBehavior,String)
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior,RunBehavior,Boolean,Boolean,Int32,Task&,Boolean)
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior,RunBehavior,Boolean,String,TaskCompletionSource`1,Int32,Task&,Boolean)
System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1,String,Boolean,Int32,Boolean)
System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
Tridion.ContentManager.Data.AdoNet.Sql.SqlDatabaseUtilities.SetBinaryContent(Int32,Stream)
Tridion.ContentManager.Data.AdoNet.ContentManagement.ItemDataMapper.Tridion.ContentManager.Data.ContentManagement.IItemDataMapper.SetBinaryContent(Stream,TcmUri)
Tridion.ContentManager.ContentManagement.RepositoryLocalObject.SetBinaryContent(BinaryContent)
Tridion.ContentManager.ContentManagement.Component.OnSaved(SaveEventArgs)
Tridion.ContentManager.IdentifiableObject.Save(SaveEventArgs)
Tridion.ContentManager.ContentManagement.VersionedItem.Save(Boolean)
Tridion.ContentManager.ContentManagement.VersionedItem.Save()
Tridion.ContentManager.BLFacade.ContentManagement.VersionedItemFacade.UpdateAndCheckIn(UserContext,String,Boolean,Boolean)
XMLState.Save
Component.Save

別の問題により、コンテンツ マネージャー スナップインのタイムアウト設定が既に高い値 (10 分以上) に設定されています。

BINARIESそれが役立つ場合、コンテンツ管理データベースのテーブルは 25 GB です。

何か案は?ありがとう。

編集 1

Bart Koopman からの提案に従って、私の DBA はインデックスを再構築しましたが、トランザクション ログがパフォーマンスに影響を与えるとは考えていません。問題は解決しません。

編集 2

エラーの詳細を見つけました

Unable to save Component (tcm:0-0-0).
Timeout expired.
The timeout period elapsed prior to completion of the operation or the server is not responding.
A database error occurred while executing Stored Procedure "EDA_ITEMS_UPDATEBINARYCONTENT".EDA_ITEMS_UPDATEBINARYCONTENT

この手順を見ると、次のステートメントが根本的な原因である可能性があるようです

SELECT 1 FROM BINARIES WHERE ID = @iBINARY_ID AND CONTENT IS NULL

@iBINARY_ID を -1 にして手動で実行しましたが、2 分経ってもまだ完了していません。新しいマルチメディア コンポーネントを挿入すると、クエリは似たようなものになると思います (つまり、id はテーブルに存在しません)。

BINARIES テーブルには現在、NON-CLUSTERED主キーがあります。おそらく解決策は、これをCLUSTERED 主キーに変更することでしょうか? ただし、理由により、非クラスター化であると想定しています。

4

2 に答える 2

14

SDLカスタマーサポートからの返答がありました。どうやらこれは統計と選択されたクエリプランに関連する既知の問題です。

SQL Server Management Studioから手動で次のステートメントを実行すると、問題が修正されます(私にとっては完了する必要さえありませんでした)

SELECT 1 FROM BINARIES WHERE ID = -1 AND CONTENT IS NULL

これが他の誰かを助けることを願っています!

于 2012-11-27T14:11:01.237 に答える
4

Timeouts on database operations are usually an indication of a misconfiguration or a lack of maintenance. By increasing the timeout you are just working around the problem rather than solving it.

With a binaries table that big you will want to make sure you have proper database setup with data files that are separated from your log files (separated on different physical partitions/disks) and possibly even multiple data files on multiple physical partitions to take advantage of performance gains.

Next to that you will want to assure that the standard database maintenance is performed daily/hourly. Things like backing up and truncating the transaction log every hour will greatly improve your database performance (on MS SQL Server a transaction log of more than 1GB slows the database down drastically, you should always try to keep it below that size through timely backup/trucate). Updating statistics and rebuilding indexes is also something you should not forget on a regular basis.

于 2012-11-26T15:16:44.370 に答える