21

I am referring specifically the Links database, stored in the "Links" table, as defined here:

<!-- LINK DATABASE -->
<LinkDatabase type="Sitecore.Data.$(database).$(database)LinkDatabase,
Sitecore.Kernel">
  <param connectionStringName="core" />
</LinkDatabase>

Does the site experience performance degradation? Does the site go down? Does nothing interesting happen? What about rebuilding core vs. master vs. web links database?

10

Sitecore is using link database in order to speed-up resolving of relationships between items (referers/references).

It allows to increase performance of Sitecore client and shouldn't impact site performance on the content delivery. It can impact content delivery performance only if you're using link database in your custom code.

If RebuildLinkDatabase dialog is finished successfully - everything is fine. There are no additional ways to check whether rebuilding was successful. However, rebuilding the link database will produce some load on database, so we would recommend to plan this operation at the time when site load is minimal.

  • Your last sentence mentions "some load". But I believe this is what the OP wants to know: how will the rebuild process impact the performance of the website, exactly? What is "some load"? – Dmytro Shevchenko Oct 13 '16 at 7:29
  • I didn't try to find exactly what happens when you rebuild linkdatabase but is not a good practice to make operations on DB when the traffic is high. Like publishing, rebuild, rebuild index, etc – Vlad Iobagiu Oct 13 '16 at 7:34
  • What I'm trying to say is, the whole question you're answering to is about what happens exactly while rebuilding the link DB. – Dmytro Shevchenko Oct 13 '16 at 7:48
  • FWIW, I am concerned with both the "Will site functionality be impacted?" and "Will site performance degrade?" questions. – Ed Schwehm Oct 13 '16 at 13:26
  • You will have a small impact, you need to make a small test to verify. It's hard to tell you because it depends on the size of you link database. – Vlad Iobagiu Oct 13 '16 at 13:56
7

Rebuilding Link Database updates the Links table in the "core" (default) database based on the selected list of database(s). As mentioned by others, it updates the referrers and references for a particular item in sitecore. The results of this can be seen when you click on Navigate > Links in the ribbon for a particular item.

For Example: You can see the list of items which are built out of a particular template

  1. Does the site experience performance degradation? The Content Delivery environment should not be affected.
  2. Does the site go down? - It depends. If any functionality on the site is directly reading data out of links table, there is a chance it can happen when you are rebuilding link database for "web".
  3. What about rebuilding core vs. master vs. web links database? Depending on the selected database(s), the Links table with SourceDatabase gets cleared and gets rebuilt.
  • Even if you have functionality on the site that depends on the links database, it should not being the site down when you rebuild. The database is not cleared when rebuilding, rather items are added/updated and then nonexistent items are removed. – techphoria414 Oct 13 '16 at 15:03
3

The site should not go down while rebuilding link databases. You may have performance issues if you have configured on the web database to have the links be rebuilt after each publish so you might want to coordenate when these tasks should be performed. Ideally when there is downtime on traffic on the website. Have you checked this link?

https://sdn.sitecore.net/Articles/Administration/Links%20Database.aspx

  • I had not seen that link... but it looks like it was written for Sitecore 5.x. I don't even recognize that UI in the screenshot! – Ed Schwehm Oct 13 '16 at 13:28
  • 1
    lol! true but the information looks still solid. If doing some digging you can probably get a more up-to-date information – Diego Oct 13 '16 at 13:34
2

I see mentions that the links database "speeds up" link resolution, but as far as I know, it is the only way by which item referrers can be resolved (i.e. "who links to this item?"). Item references (i.e. "who does this item link to?") I suppose could also be resolved by parsing every link field on an item, which is actually what happens during a rebuild.

The Links Database is used primarily for back-end / administrative functionality in Sitecore. I have used it on the front-end as well (i.e. code called directly or indirectly by a website HTTP request), but I have seen deadlock errors when this is done under load, and Sitecore Support has advised against it.

Looking through the rebuild logic in LinkDatabase and SqlLinkDatabase, it appears that the update is done "in place" and does not clear the database first, so any queries against the links database while the rebuild is running should work fine.

As the links database resides in core, it does not matter which instance does the rebuild, so I would recommend doing the rebuild from the CM server as to not affect CD performance. That said I have never noticed a performance hit during a rebuild. It's a slow process that I believe would be mostly database bound.

1

Rebuilding link databases wouldn't impact on the performance of the site itself, but it will impact on CM instance, so Content Editors will fill it a bit delayed in actions, it shouldn't impact on CD, because the process will be handled on CM Server anyway. Even if it fails your site shouldn't go down and etc., as what it does it fixes broken links (references to other items), so for instance you've deleted the item and didn't repoint the reference link to another item.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.