实际上我试图在我们的页面上实现谷歌标记,以便我们的用户控件将在页面标题部分呈现以下 HTML 类型
<link rel="alternate" hreflang="en-GB" href="http://www.mysite.com/english/index.aspx" />
<link rel="alternate" hreflang="de-DE" href="http://www.mysite.com/de/german/index.aspx" />
<link rel="alternate" hreflang="en-DE" href="http://www.mysite.com/de/english/index.aspx" />
<link rel="alternate" hreflang="ru-RU" href="http://www.mysite.com/ru/russian/index.aspx" />
<link rel="alternate" hreflang="en-RU" href="http://www.mysite.com/ru/english/index.aspx" />
<link rel="alternate" hreflang="fr-FR" href="http://www.mysite.com/fr/french/index.aspx" />
<link rel="alternate" hreflang="it-IT" href="http://www.mysite.com/it/italian/index.aspx" />
<link rel="alternate" hreflang="ja-JP" href="http://www.mysite.com/jp/japanese/index.aspx" />
<link rel="alternate" hreflang="ko-KR" href="http://www.mysite.com/kr/korean/index.aspx" />
<link rel="alternate" hreflang="pt-BR" href="http://www.mysite.com/br/portuguese/index.aspx" />
<link rel="alternate" hreflang="zh-Hans-CN" href="http://www.mysite.com/cn/chinese/index.aspx" />
<link rel="alternate" hreflang="en-US" href="http://www.mysite.com/us/english/index.aspx" />
<link rel="alternate" hreflang="en-GB" href="http://www.mysite.com/uk/english/index.aspx" />
<link rel="alternate" hreflang="en-AU" href="http://www.mysite.com/au/english/index.aspx" />
<link rel="alternate" hreflang="en-AE" href="http://www.mysite.com/ae/english/index.aspx" />
在上面的 html 中,您可以从 Broker LINK_INFO 表中找到 HTML“/ae/english/index.aspx、/au/english/index.aspx 等”的这一部分,这个实现工作正常,直到我们使用 LIVE 代理数据库进入 LIVE 网站,并且当我们在 LIVE 上启用此功能时,我们的服务器性能由于代理数据库的点击而被杀死,并且似乎锁定了 LINK_INFO 表,因为我们的网站每天有 150 万次点击,上述功能的工作原理如下:
- 每当加载任何网站页面时,它都会调用我们的代理,代理调用我们的 Web 服务,Web 服务调用我们的 SQL 过程,该过程会转到 LINK_INFO 表并根据传递给 SQL 过程的 PageID 取出结果列表。
- SQL 过程返回的 xml 结果然后被传递给我的 XSLT 使用它的控件,并在完整的 HTML 之上呈现出来。
似乎出了点问题,请建议是否有其他方法可以在不接触代理数据库的情况下实现上述功能。编写 Page EVENT 或自定义 Deployer 会有所帮助吗?
请推荐!!
注意:我们使用的是 Tridion 2009
编辑:代理 SQL 过程如下:
ALTER PROCEDURE [dbo].[GETDataFromLinkInfo]
-- Add the parameters for the stored procedure here
(@PageID INT)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT DISTINCT [PUBLICATION_ID] AS n,
[URL] AS u
FROM [LINK_INFO] WITH(NOLOCK)
WHERE Page_ID = @PageID
AND Component_Template_Priority > 0
AND PUBLICATION_ID NOT IN( 232, 481 )
ORDER BY URL
FOR XML RAW ('p'), ROOT ('ps');
RETURN
END