Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA™ Work Tasks

Guidelines for Sizing Database

  • Last UpdatedJun 06, 2024
  • 9 minute read

This document explains the database growth pattern of AVEVA Work Tasks databases. It is intended to help the user understand about the disk space, memory, and processor speed requirements for best performance of AVEVA Work Tasks.

Note: The performance characteristics presented in this document are not to be interpreted as a benchmark measurement for all the supporting systems. Only empirical testing on the target system can provide accurate data. The actual database size, memory used, I/O required is based on the respective implementation, concurrent user access, and so on.

Overview

AVEVA Work Tasks supports different versions of Microsoft SQL Server to store operational data. The analysis for database sizing is done on Microsoft SQL Server 2008 (SP3) - 10.0.5512.0 (X64).

By default, AVEVA Work Tasks databases are set to grow in an "Auto growth" mode as SQL Server default settings. Based on the best practices recommended by Microsoft and database experts, you should set the size of the repository database depending on the transactions and growth pattern.

A database should be sized appropriately so that the database does not need to auto grow, but should be configured by the user when required. It is recommended to configure the File Growth value to fix growth, based on the database growth pattern.

A desirable approach is to have a separate disk for repository and farm database.

Note: It is highly recommended that a Database Professional performs the tasks mentioned in this document. The purpose of the document is to provide guidelines for sizing AVEVA Work Tasks database. Essential maintenance tasks may vary based on specific implementation.

Farm Database

The farm database is a configuration database, basically used to map repositories, support Enterprise Server configuration, and so on. The database may grow when there is a massive usage of communication activities, such as email and SMS.

Repository Database

The repository database is a database for the repository related data. All the operational data required for the application exists in the database to keep the database healthy. Data such as various activities related information, the list data, forms definition, and workflow definitions is stored in the repository database. The database growth always relates to the features, such as list and queue, used by the application.

BI Database

The BI database is a placeholder for future development on business intelligence reports and does not occupy any space.

Parameters that affect the performance of an application include the environment, various databases involved, kind of workflow, and number and types of activities. For database sizing, the prospective data is captured to show the database growth pattern based on a typical workflow having 72 activities with a combination of engine and human activities. The information of the environment on which the data is captured along with the workflow used is included.

Database Growth Pattern

Table Level Growth

Table level growth is purely based on the features and Workflow used. Based on the sample workflow, the table level record growth is as follows:

Table Name

Number of Records per 5000 instances

Number of Records per Instance

Remarks

SKChannelWorkItem

20000

4

SKHWSActivity

20000

4

SKWorkItem

20000

4

SKWorkItemTransaction

20000

4

SWActionEventLog

500000

100

SWActionEventLong

500000

100

SWExecute

5000

1

SWExecutionDetails

360000

72

There are 72 activities for the workflow. Each activity has a record.

SWLong

5000

1

SWVariables

45000

9

Table Size

Farm Database

The details regarding the table size help in arriving at the maximum database growth pattern.

To calculate the storage needs, multiply the average row length and the number of records per month that will be entered into the database. This provides the details of the amount of storage required by each table. If a table has any variable length string fields, add 4 bytes to the average row length to account for overhead, which SQL Server requires when maintaining the table.

The following table shows different tables of the repository database and their size:

Table_name

Byte_Length

SKActivityNameConcurrency

1220

SKActivityTypeConcurrency

720

SKAddInProviders

1983

SKASServerStatus

1057

SKAzureServiceBusSettings

2776

SKBizTalkMessages

77

SKBizTalkRules

1109

SKCacheInfo

224

SKConcurrentThreadPools

520

SKConcurrentUsers

32

SKDataSource

1106

SKDBScriptVersionStamp

204

SKDeviceRegistration

3610

SKEventServicePorts

548

SKFarm

1244

SKInMemoryActivityCount

1020

SKNotificationMessage

1261

SKProduct

553

SKRepository

5357

SKRepositoryMapping

72

SKServer

1861

SKService

1276

SKServiceMapping

1336

SKSiteUserGroups

1124

SKWebSite

3762

SWProcessedMails

16

SWProcessedSMS

16

SWSMSException

20

SWSMSFilters

2740

SWSMSs

48

SWSMTPMailException

20

SWSMTPMailFilters

2740

SWSMTPMails

48

SWTaskBizTalkMsgTimeout

542

SWTaskEmailTimeout

1042

SWTaskSMSTimeout

1030

All_Tables

42314

Repository Database

Default table size of the repository database is as follows and this may help to arrive at maximum database growth pattern.

Table_name

Byte_Length in KB

SKAddInProviders

1983

SKAddInProviderSettings

1057

SKAlternateActorRules

1175

SKBamAlertManager

1040

SKBAMConditionWorkItemFields

808

SKBAMConditionWorkItems

596

SKBamDashboard

1042

SKBamMenu

3640

SKBAMResourceWorkAnalysis

636

SKBAMTypeofWork

24814

SKBAMUniqueTypeOfWork

2121

SKBAMWebService

6516

SKCalendar

1114

SKCalendarDay

764

SKCalendarWeekDays

560

SKChannelWorkItem

6820

SKChildWorkflows

2454

SKCrossDomainUserRoles

2524

SKDBScriptVersionStamp

204

SKDeviceSubscription

2403

SKEAssemblyList

8093

SKEAuditTrail

5283

SKEBizTalkConnections

5539

SKEConnection

10335

SKECustomControls

2478

SKEDynamicLists

5508

SKEEventAssociations

11103

SKEEventProviders

5961

SKEFolderList

9653

SKEForm

6007

SKEFormDataGridViews

2592

SKEFormDefinition

1526

SKEGridConfigurations

3247

SKEImpersonationUsers

6527

SKEListDefinition

1907

SKEListFormAssociation

1551

SKEListItemDataNV

99599

SKEListItemDataTemp

1064

SkeListItemWorkflow

1341

SKEListOperations

3284

SKEListTemplateTable

1411

SKEListViews

2245

SKEListWIPItems

673

SKELookup

6223

SKENavigationDetails

8238

SKEntity

1272

SKEntityDataSourceProvider

1756

SKEPopupTemp

56

SKERightsControlProviders

1604

SKERightsListMapping

548

SKEscalation

1825

SKESecurityGroup

5558

SKESecurityRights

6727

SKESGResourceMapping

5667

SKESGRightsMapping

628

SKESGViewRightsMapping

617

SKESSRSConnection

4412

SKESSRSReports

3639

SKESSRSTemplate

3411

SKEUsers

6663

SKEventBindings

16436

SKEventServicePorts

548

SKEVirtualTable

1773

SKEWebPartLayouts

1056

SKEWebParts

1566

SKEWebPartTemplates

2036

SKEWorkflow

5507

SKEWorkflowDefinition

1348

SKEWPApplications

1552

SKEWPPaths

1056

SKEWPPersonalizationAllUsers

40

SKEWPPersonalizationPerUser

72

SKEWPRoles

1568

SKEWPSchemaVersions

513

SKEWPUsers

1097

SKEWPUsersInRoles

32

SKExecutionInstanceData

544

SKExternalConnectionDetails

2587

SKExternalConnections

1711

SKFavouritesURI

1816

SKFWFolderList

5707

SKHWSActivity

7881

SKInvokeWebServices

3141

SKListDefinitionVersionStamp

20

SKListTables

1025

SKMultipleTimeoutWarning

833

SKPackage

5507

SKPackageAttachment

2682

SKPackageConfigurations

1148

SKPackageDataTemp

540

SKPackageDetails

977

SKPackageHistory

3361

SKPackageTemplate

5507

SKPackageTemplateAttachment

2683

SKPackageTemplateDetails

977

SKPersistedException

3912

SKPersonalization

640

SKQueue

1389

SKQueueAccessRights

1042

SKQueueParticipants

588

SKReplaceUserLog

4623

SKRibbonBarXmlInfo

1832

SKRoleRefresh

559

SKScheduler

1661

SKSchedulerHistory

9728

SKSchedulerProcessInfo

1128

SKSPAlertedWorkflows

5062

SKSPWebSettings

3216

SKTaskStatusTypes

1341

SKTempFormPrint

556

SKTemplates

2833

SKTemplatesLong

48

SKTimeZones

1016

SKUserReports

1733

SKUserReportsDetails

1227

SKVirtualActor

6126

SKVirtualRole

5386

SKWorkflowCorrection

1101

SKWorkflowEvents

882

SKWorkItem

1521

SKWorkItemCounter

1268

SKWorkItemData

540

SKWorkItemFields

4392

SKWorkItemFieldsDefinition

2986

SKWorkItemFieldTypeCounts

804

SKWorkItemTransaction

946

SKWorkItemTransactionTypes

522

SKWorkItemView

1288

SWActionEventLog

20

SWActionEventLong

20

SWCode

9648

SWCustomTimerDetails

598

SWExecute

1276

SWExecutionDetails

946

SWFECount

1032

SWFileMonitor

721

SWLong

20

SWProduction

1020

SWProductionLong

20

SWRaw

20

SWReportSets

1424

SWScriptCode

2248

SWStaging

1076

SWStagingLong

20

SWTaskForResuming

532

SWTaskList

1332

SWVariables

292

SWWebServiceDetails

4648

SWWorkflowEventLog

20

All_Tables

504837

Bytes

KB

MB

504837

493.0049

0.48145

Environment

The environment used to capture the database sizing related information is the Enterprise server with two web server nodes, two workflow engine servers, and an SQL Server mentioned as Database Server. The system configuration of the environment is as follows:

Web Server Configuration

DB Sizing - Web Server Configuration

Engine Servers

The configurations for the engine servers are same as that of the Web Server.

Database Server

DB Sizing - DB Server Configuration

Server Startup Time

Aug 16 2013 4:30PM

Server Instance Name

SKELTARND2

Product Version

10.0.5512.0

Edition

Developer Edition (64-bit)

Windows ProcessID

2232

Active Sessions

1

Active Transactions

9

Active Databases

50

Total Server Memory (KB)

29810440

Workflow Used

The database growth pattern is captured based on the performance test workflows, which include 72 activities altogether and 5 queues with a combination of automatic dispatch pattern and manual pick. In parallel, work item tasks are assigned to the queues. The workflow diagram is as follows:

DB Sizing - Workflow

LogFile Size

Every SQL Server database has a transaction log, which records all the transactions and the database modifications made by each transaction. The transaction log must be truncated on a regular basis to keep it from filling up. However, some factors can delay log truncation. Therefore, monitoring log size is important. This can be achieved by logging some operations minimally to reduce their impact on transaction log size.

The transaction log is a critical component of the database. If there is a system failure, the transaction log is required for database recovery to bring the database back to a consistent state.

Note: Ensure that the transaction log is never deleted or moved without having a clear understanding of its effects.

For more information regarding management of log files, it is recommended to consult a Database Professional.

Number of Workflow instances

Log file Growth MB

433000

9697

438000

9697

443000

9697

448000

9697

453000

9697

458000

9697

463000

9697

468000

9697

473000

9697

478000

9697

483000

9697

TempDB

A temporary database is not directly used by AVEVA Work Tasks. However, the SQL Server internally uses this database for operations, such as sorting indexing. Therefore, it is recommended to maintain an ideal space for this database, to facilitate the above mentioned SQL server internal operations.

A default installation of any SQL Server edition will create a TempDB database with an 8MB data file and a 1MB transaction log file. For a lot of SQL Server installations, these file sizes are not sufficient. However, they are configured to auto grow by 10% as needed.

The auto grow feature enables a more hands-off approach to maintaining many SQL Server installations. However, this approach is not recommended because the database storage files cannot be used while they are autogrowing. This can lead to fragmentation of the files on the hard disk; thereby, leading to poor performance.

This recommendation is applicable to any SQL Server database, but it is even more relevant for the TempDB. When you restart your SQL Server instance, the TempDB is re-created (files will be reused if they already exist) and sized to the value specified in the database properties. The default values are 8MB for the data file and 1MB for the log file.

Note: The I/O operations are the most time consuming processes and the TempDb is being used exclusively by SQL Server for most of its operations. Therefore, it is recommended to have a separate disk for the TempDb than the operational database. A managed growth gives better performance. Please consult the Database Professional for the desired settings.

CPU Utilization

The CPU utilization on the database server is based on the queries or updates considered as a part of the workflow engine database activities. The CPU utilization varies with user interaction taken place as part of the UI activities. Various other parameters such as file fragmentation, I/O overheads, and so on also affect the CPU utilization. For more realistic information on the implementation, please consult a Database Professional.

Graph shows the CPU utilization.

DB Sizing - CPU Utilization

I/O Statistics

Reading and writing to the disk is the heart of any database management system. Input/Output (I/O) performance is critical for databases and can make or break an application. In many environments, I/O is the main bottleneck for the database performance. The main task of I/O is to retrieve and to store records within files. The I/O performance can be improved by analyzing the specific issues by a Database Professional. Various SQL Server reports are available for analyzing the I/O related performance. The I/O performance purely depends on the specific environment. Thus, providing a snapshot of the I/O statistics may not be helpful.

http://blogs.msdn.com/b/sqljourney/archive/2013/06/04/how-to-troubleshooting-sql-server-i-o-bottlenecks.aspx

http://www.quest.com/backstage/images/promotions/SQLServer-Perfmonance-Poster.pdf

Performance Matrix

Following are some of the important parameters to consider for database sizing. Ideally, an implementation should provide the following performance. Count values above the following are not advisable.

Area

Maximum Value

Type

Remarks

Number of Unattended Work items across queues

60000

Supported

Ideally there should not be this many items

Number of not acted Items in a Queue

15000

Supported

In the test environ 4 queues populated with 15000 items each

Execution Time in ms for an action on 100GB data

65

Threshold

Execution time in ms for an activity

Time taken in ms for 72 Actions on 100GB

4750

Threshold

Execution time in ms for a workflow instance

Number of execution of Workflow instance at any point of time on a Server

32

Threshold

At any point of time on any server, 32 instances of workflow can be running

References

For further information, refer the following links.

http://blogs.technet.com/b/patricg/archive/2007/10/18/sql-server-tips-n-5-tempdb-best-practices.aspx?Redirected=true

http://technet.microsoft.com/en-us/magazine/2008.08.database.aspx

Definitions

Term

Definition

Logfile

Database log file

TB

Tera Bytes

GB

Giga Bytes

MB

Mega Bytes

DB

Database

Special Notes

  • Actual growth pattern will be based on the implementation.

  • Set the size of the database for a better performance.

  • Keep enough space in the SQL Server TempDB.

  • Use 64-bit SQL server environment for better performance based on business requirement.

  • Actual server configuration purely depends on business requirement, such as concurrent users and workflow instances.

  • Every implementation should have proper database management monitored by a Database Professional.

  • I/O statistics must be monitored to check if it affects the actual performance an application.

Conclusion

The following values are approximate values, and might vary based on the implementation:

  • Average Growth of Database per instance is 118.1726 KB.

  • Average Growth of Database per instance per Action is 1.641286 KB.

  • Database size requirement per day for a workflow having 10 activities and 100 instance is 1.6412 * 10 * 100 = 1641.2 KB, that is, 1.627MB approximately.

In This Topic
TitleResults for “How to create a CRG?”Also Available in