0

I am a bit confused and unable to figure out things. So, looking for your help.

In Sitecore, by default Link database is part of the Core database. From the configuration files, we can have the same in the Web database. And we have done the same in our solution

As mentioned in the documentation

The default is to store all entries in the core database, but for instance in a runtime web would probably be specified instead as the core database may not be enabled in a content delivery environment.

As part of our environment maintenance exercise, we regularly rebuild the Link database for Master and Core. The Core one finishes within a minute. The Master keeps on executing for more than 24 hours. If I see the tables through the Azure portal, they do not have any entry in either of the databases.

Please help me to understand what is happening here.

1 Answer 1

1

The documentation you linked is a very old one, from like 6.x or even older.

New documentation is here:

https://doc.sitecore.com/xp/en/developers/103/sitecore-experience-manager/the-links-table.html

Sitecore maintains a database table called Links.The Links table stores all links between individual items across databases (Core, Master, Web) and language versions.

Sitecore updates this table based on events that are triggered when actions on items (item:copied, item:deleted, item:saved, item:versionRemoved) are triggered.

By default all the links are stored in [dbo].[Links] table in core database.

You can change the connection string to e.g. web:

<LinkDatabase type="Sitecore.Data.SqlServer.SqlServerLinkDatabase, Sitecore.Kernel">
  <param connectionStringName="core"/>
</LinkDatabase>

Then all the links will be stored in [dbo].[Links] table in web database. Every row entry contains database name for given link.

And it's normal that core database rebuild is quick - there are only Sitecore backend items there. While in master database is all your content, potentially hundreds of thousands or even millions of items - that can take quite a long time.

6
  • Our solution has the config entry for having the table in the Web DB. So, the table in Master DB is empty. But the rebuilding Link DB of the Master DB is taking time. Jan 9 at 9:08
  • Yes, that's expected. If you change config to have table in web database, it means that all the Link Database entries (for core, master and web databases) will be stored in [dbo].[Links] table in web database.
    – Marek Musielak
    Jan 9 at 9:12
  • Then why rebuilding Link Db on the Master will take time? Jan 9 at 9:26
  • Because when you changed your config to store LinkDatabase in web database and then you rebuild master database links, you tell Sitecore to recalculate all the links of master database and save them in web database Links table.
    – Marek Musielak
    Jan 9 at 9:41
  • Thanks, @Marek. It helps Jan 9 at 10:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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