Recently, several blogs have posted about hidden settings that allows you to disable certain security related features in Sitecore. Sitecore can contain many users or many groups. This will sometimes lead to slow performance in the Sitecore shell or in the Sitecore page editor.
One of the reasons that Sitecore becomes slow, is that some security-releated lookups is done using the Sitecore Fast Query. Fast queries are not always fast, as these queries are non-cached SQL select statements done directly on the database:
Database.SelectItems("fast://*[@__lock='%\"" + Context.User.Name + "\"%']");
Some of the lookups are done merely to enhance the user experience – not to enforce security schemes. So some of the lookups can be disabled using web.config settings. Here are a few of them:
This settings enforces security on languages. The settings is TRUE per default and allows you to allow/disallow access to languages. Read this article on how to set up security on languages.
The check is used by Sitecore.Globalization.GetLanguages(), Sitecore.Security.AccessControl.ItemAccess.CanReadLanguage() and Sitecore.Security.AccessControl.ItemAccess.CanWriteLanguage(), and it is also used by the GetContentEditorWarnings.CanReadLanguage processor.
If your website is not a multilanguage site, or you allow all editors to access all languages, you can disable this check.
This settings is also TRUE by default and it will read the security settings on each node to ensure that you have read acces. If not, the node is hidden. If FALSE, every node is displayed in the tree view, and security is enforced when clicking the node. If you don’t care that every editor can see every node in the tree, you may disable this. Security is still enforced when the editor clicks an item.
This settings applies to the page editor, especially the “My Items” button, which will display how many items you have locked. This lookup is done using Sitecore Fast Query, and can be painfully slow when having lots of users and groups.
If you are interested in Sitecore performance tweaking, these blogs are worth a visit:
- Read Alex Shybas Sitecore Performance Checklist.
- Optimizing Performance In Sitecore by Sitecore themselves (requires login).
- Sitecore Performance Analysis by navigation arts.
- The Client View by Dan Brown is also a good resource, especially his article on database properties and the article about IIS Expire Web Content caught my attention.