This appendix contains recommendations for large database (more than 50 000 user accounts). It will help you adjust Secure Access and its database for higher performance.
Secure Access User Interface
PortSight Secure Access Web user interface allows you to work with very large databases. However, you need to accept some compromises in usability:
The filters in the Secure Access User interface allow you to find particular records. The longer search expression you enter, the faster the search is. You can specify the minimal length of the searched expression in the SecureAccessMinNumberOfSearchedCharacters parameter of the Web.config file.
The permission matrix should contain only a few user groups or roles, not particular users or groups, in case you're working with large number of users/groups or in case the permission matrix contains many permission types.
The first start (or restart) of the Web user interface can be much slower than a common use. This is caused by two reasons:
Although your first use of some page may result in a server time-out, the same page may be displayed very quickly at the second attempt.
Hierarchical Structures (Nested User Groups, Organizational Units, Nested Roles, Application parts)
The depth of hierarchy of user groups/org. units/roles and application parts influences significantly the overall performance of the system. It's recommended that you avoid creating large groups with many members and creating deeply nested hierarchies or membership.
Also, when you try to delete a hierarchical structure (such as an organizational unit containing thousands of users/groups/units, it's recommended that you delete child organizational units first.
Import of Large Amount of Data
AR_ObjectGUID should be always mapped to some indexed column. If the column is not indexed by default, you can add the index by yourself using SQL Server Enterprise Manager. It's also not recommended to map the AR_ObjectGUID to custom properties (custom fields can be used provided you create appropriate indexes on them).
If you're going to import large amounts of data using the ODBC provider, it's recommended that you create and fill tables called View_Users, View_Groups, etc. instead of creating views. Then you should create a separate index on each column and run the import.
The list of users, groups and units that will/will not be imported is limited to first 1000 items by default. You can modify this if necessary by setting the SecureAccessMaxRecordsForImportPreview value in the application configuration settings of CatalogManager.exe (file CatalogManager.exe.config).
Using the Secure Access Libraries (API)
When using the Secure Access libraries it's recommended that you primarily use methods that use integer parameters (ID's) instead of strings (names, aliases). You can pre-read the integer values from the database when your application starts and use them later. Working with integer values is generally faster than with strings, however you should consider using integer values only when you really experience performance issues of particular methods.
Large memory and fast disks can improve the overall performance dramatically. You can find more information about fine-tuning the SQL Server performance in its documentation.