Reputation: 51
Here's my problem. All of the pages on our Sharepoint 2007 sites get rendered by web parts. The web parts pull data from lists and display them on the page. In the last couple weeks, performance has suffered, to the point where a single page might take a minute and a half to load. In examining the logs, it appears that the queries to the SQL database are taking around 3 to 5 seconds each, and the actual queries are huge. The lists that contain the data have anywhere from 100 to 2000 list items. I know 2000 is a lot, but we've never had this bad of performance in the past. I'm going to post an example of one SQL query, and brace yourselves, it's pretty bad. Notice the excessive number of JOIN statements; I counted 34 in this one:
EXEC Sp_executesql
N' SELECT t16.*, t18.[MetaInfo] AS c30, t17.[ntext7], t17.[ntext9], t17.[ntext3], t17.[ntext1], t17.[ntext4], t17.[ntext6], t17.[ntext8], t17.[ntext2], t17.[ntext5], t17.[ntext10] FROM (SELECT DISTINCT t14.*, t15.[tp_Ordinal] , t2.[tp_ID] AS c4, t3.[tp_ID] AS c6, t4.[tp_ID] AS c7, t6.[tp_ID] AS c11, t7.[tp_ID] AS c12, t8.[tp_ID] AS c13, t9.[tp_ID] AS c14, t10.[tp_ID] AS c15, t24.[nvarchar1] AS c13c10, t22.[nvarchar1] AS c11c10, t19.[nvarchar1] AS c4c5, t26.[nvarchar1] AS c15c5, t23.[nvarchar1] AS c12c8, t21.[nvarchar1] AS c7c8, t25.[nvarchar1] AS c14c5, t20.[nvarchar1] AS c6c5 FROM ( SELECT TOP 2147483648 t1.[Type] AS c0,UserDataVersioned.[tp_ModerationStatus],UserDataVersioned.[nvarchar1],UserDataVersioned.[nvarchar21],UserDataVersioned.[tp_Version],UserDataVersioned.[int2],t13.[nvarchar1] AS c24c19,t1.[TimeLastModified] AS c28,UserDataVersioned.[tp_HasCopyDestinations],UserDataVersioned.[nvarchar12],UserDataVersioned.[int7],UserDataVersioned.[nvarchar17],t12.[nvarchar4] AS c18c21,t13.[nvarchar5] AS c24c22,UserDataVersioned.[tp_WorkflowInstanceID],UserDataVersioned.[tp_Level],UserDataVersioned.[tp_DirName],t1.[ScopeId] AS c3,UserDataVersioned.[nvarchar5],UserDataVersioned.[nvarchar20],UserDataVersioned.[tp_CalculatedVersion],UserDataVersioned.[int1],UserDataVersioned.[tp_Author],UserDataVersioned.[tp_Editor],UserDataVersioned.[tp_UIVersion],UserDataVersioned.[tp_GUID],UserDataVersioned.[tp_ContentTypeId],UserDataVersioned.[nvarchar11],UserDataVersioned.[nvarchar16],UserDataVersioned.[int6],t1.[TimeCreated] AS c26,CASE WHEN DATALENGTH(t1.DirName) = 0 THEN t1.LeafName WHEN DATALENGTH(t1.LeafName) = 0 THEN t1.DirName ELSE t1.DirName + N''/'' + t1.LeafName END AS c1,t13.[tp_ID] AS c24c20,UserDataVersioned.[tp_WorkflowVersion],UserDataVersioned.[tp_IsCurrentVersion],UserDataVersioned.[nvarchar4],UserDataVersioned.[nvarchar9],t1.[ProgId] AS c29,UserDataVersioned.[tp_SiteId],UserDataVersioned.[int5],UserDataVersioned.[nvarchar10],UserDataVersioned.[nvarchar15],t12.[nvarchar1] AS c18c19,t12.[nvarchar5] AS c18c22,t13.[tp_Created] AS c24c23,UserDataVersioned.[tp_CopySource],UserDataVersioned.[tp_ContentType],t13.[nvarchar3] AS c24c31,UserDataVersioned.[tp_HasAttachment],UserDataVersioned.[tp_InstanceID],UserDataVersioned.[tp_ItemOrder],UserDataVersioned.[tp_Created],UserDataVersioned.[tp_ID],UserDataVersioned.[nvarchar3],UserDataVersioned.[nvarchar8],UserDataVersioned.[nvarchar23],UserDataVersioned.[tp_LeafName],UserDataVersioned.[int4],t5.[nvarchar1] AS c9c10,UserDataVersioned.[nvarchar14],UserDataVersioned.[tp_UIVersionString],t1.[DirName] AS c27,t1.[Id] AS c2,UserDataVersioned.[tp_DeleteTransactionId],UserDataVersioned.[nvarchar19],UserDataVersioned.[int9],t11.[nvarchar4] AS c16c17,t12.[tp_ID] AS c18c20,t13.[nvarchar4] AS c24c21,UserDataVersioned.[nvarchar2],UserDataVersioned.[nvarchar7],UserDataVersioned.[float1],UserDataVersioned.[nvarchar22],UserDataVersioned.[tp_Modified],UserDataVersioned.[int3],UserDataVersioned.[nvarchar13],UserDataVersioned.[int10],t1.[LeafName] AS c25,UserDataVersioned.[nvarchar18],UserDataVersioned.[int8],t12.[tp_Created] AS c18c23,t12.[nvarchar3] AS c18c31,UserDataVersioned.[nvarchar6] FROM UserDataVersioned INNER JOIN Docs AS t1 WITH(NOLOCK) ON ( 1 = 1 AND UserDataVersioned.[tp_RowOrdinal] = 0 AND t1.SiteId = UserDataVersioned.tp_SiteId AND t1.SiteId = @L2 AND t1.DirName = UserDataVersioned.tp_DirName AND t1.LeafName = UserDataVersioned.tp_LeafName AND t1.IsCurrentVersion = 1 AND (UserDataVersioned.tp_Level = 255 AND t1.LTCheckoutUserId =@IU OR (UserDataVersioned.tp_Level = 1 OR UserDataVersioned.tp_Level = 2 AND (UserDataVersioned.tp_DraftOwnerId = @IU OR t1.ScopeId IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233''))) ) AND (t1.ScopeId=@L3) AND UserDataVersioned.tp_ListId = @L4) LEFT OUTER JOIN (SELECT * FROM UserData AS t5_u WITH(NOLOCK) INNER JOIN Docs AS t5_d WITH(NOLOCK) ON (t5_d.DoclibRowId = t5_u.tp_ID AND t5_d.SiteId = t5_u.tp_SiteId AND t5_d.SiteId = @L2 AND t5_d.DirName = t5_u.tp_DirName AND t5_d.LeafName = t5_u.tp_LeafName AND t5_d.Level = t5_u.tp_Level AND (t5_u.tp_Level = 255 AND t5_d.LTCheckoutUserId =@IU OR (t5_u.tp_Level = 1 AND (t5_u.tp_DraftOwnerId IS NULL OR (t5_u.tp_DraftOwnerId <>@IU AND t5_d.ScopeId NOT IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233''))) OR t5_u.tp_Level = 2 AND (t5_u.tp_DraftOwnerId = @IU OR t5_d.ScopeId IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233''))) AND (t5_d.LTCheckoutUserId IS NULL OR t5_d.LTCheckoutUserId <> @IU )) AND (t5_d.ScopeId=@L3))) AS t5 ON (UserDataVersioned.[int4]=t5.[tp_ID] AND UserDataVersioned.[tp_RowOrdinal] = 0 AND t5.[tp_RowOrdinal] = 0 AND t5.tp_ListId = @L4 AND UserDataVersioned.tp_ListId = @L4) LEFT OUTER JOIN (SELECT * FROM UserData AS t11_u WITH(NOLOCK) INNER JOIN Docs AS t11_d WITH(NOLOCK) ON (t11_d.DoclibRowId = t11_u.tp_ID AND t11_d.SiteId = t11_u.tp_SiteId AND t11_d.SiteId = @L2 AND t11_d.DirName = t11_u.tp_DirName AND t11_d.LeafName = t11_u.tp_LeafName AND t11_d.Level = t11_u.tp_Level AND (t11_u.tp_Level = 255 AND t11_d.LTCheckoutUserId =@IU OR (t11_u.tp_Level = 1 AND (t11_u.tp_DraftOwnerId IS NULL OR (t11_u.tp_DraftOwnerId <>@IU AND t11_d.ScopeId NOT IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233''))) OR t11_u.tp_Level = 2 AND (t11_u.tp_DraftOwnerId = @IU OR t11_d.ScopeId IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233''))) AND (t11_d.LTCheckoutUserId IS NULL OR t11_d.LTCheckoutUserId <> @IU )) AND (t11_d.ScopeId=@L3))) AS t11 ON (UserDataVersioned.[int10]=t11.[tp_ID] AND UserDataVersioned.[tp_RowOrdinal] = 0 AND t11.[tp_RowOrdinal] = 0 AND t11.tp_ListId = @L4 AND UserDataVersioned.tp_ListId = @L4) LEFT OUTER JOIN AllUserData AS t12 WITH(NOLOCK, INDEX=AllUserData_PK) ON (UserDataVersioned.[tp_Author]=t12.[tp_ID] AND UserDataVersioned.[tp_RowOrdinal] = 0 AND t12.[tp_RowOrdinal] = 0 AND ( (t12.tp_IsCurrent = 1) ) AND t12.[tp_CalculatedVersion] = 0 AND t12.[tp_DeleteTransactionId] = 0x AND t12.tp_ListId = @L5 AND UserDataVersioned.tp_ListId = @L4) LEFT OUTER JOIN AllUserData AS t13 WITH(NOLOCK, INDEX=AllUserData_PK) ON (UserDataVersioned.[tp_Editor]=t13.[tp_ID] AND UserDataVersioned.[tp_RowOrdinal] = 0 AND t13.[tp_RowOrdinal] = 0 AND ( (t13.tp_IsCurrent = 1) ) AND t13.[tp_CalculatedVersion] = 0 AND t13.[tp_DeleteTransactionId] = 0x AND t13.tp_ListId = @L5 AND UserDataVersioned.tp_ListId = @L4) WHERE (UserDataVersioned.[tp_ID] = @I6P) AND t1.SiteId=@L2 AND (t1.DirName=@DN OR t1.DirName LIKE @DNEL+N''/%'') ORDER BY UserDataVersioned.[tp_UIVersion] Desc,UserDataVersioned.[tp_ID] Asc ) AS t14 LEFT OUTER JOIN UserDataJunctionsVersioned AS t15 ON t14.[tp_SiteId] = t15.[tp_SiteId] AND t14.[tp_DeleteTransactionId] = t15.[tp_DeleteTransactionId] AND t14.[tp_IsCurrentVersion] = t15.[tp_IsCurrentVersion] AND t14.[tp_DirName] = t15.[tp_DirName] AND t14.[tp_LeafName] = t15.[tp_LeafName] AND t14.[tp_CalculatedVersion] = t15.[tp_CalculatedVersion] AND t14.[tp_Level] = t15.[tp_Level] LEFT OUTER JOIN UserDataJunctionsVersioned AS t2 ON t14.[tp_SiteId] = t2.[tp_SiteId] AND t14.[tp_DeleteTransactionId] = t2.[tp_DeleteTransactionId] AND t14.[tp_IsCurrentVersion] = t2.[tp_IsCurrentVersion] AND t14.[tp_DirName] = t2.[tp_DirName] AND t14.[tp_LeafName] = t2.[tp_LeafName] AND t14.[tp_CalculatedVersion] = t2.[tp_CalculatedVersion] AND t14.[tp_Level] = t2.[tp_Level] AND t15.[tp_Ordinal] = t2.[tp_Ordinal] AND t2.[tp_FieldId] = ''{2e286cc1-f309-4b61-9a9e-efd7bfa5fd61}'' LEFT OUTER JOIN UserDataJunctionsVersioned AS t3 ON t14.[tp_SiteId] = t3.[tp_SiteId] AND t14.[tp_DeleteTransactionId] = t3.[tp_DeleteTransactionId] AND t14.[tp_IsCurrentVersion] = t3.[tp_IsCurrentVersion] AND t14.[tp_DirName] = t3.[tp_DirName] AND t14.[tp_LeafName] = t3.[tp_LeafName] AND t14.[tp_CalculatedVersion] = t3.[tp_CalculatedVersion] AND t14.[tp_Level] = t3.[tp_Level] AND t15.[tp_Ordinal] = t3.[tp_Ordinal] AND t3.[tp_FieldId] = ''{48ce2774-348c-46fc-8863-b050f78d9fe6}'' LEFT OUTER JOIN UserDataJunctionsVersioned AS t4 ON t14.[tp_SiteId] = t4.[tp_SiteId] AND t14.[tp_DeleteTransactionId] = t4.[tp_DeleteTransactionId] AND t14.[tp_IsCurrentVersion] = t4.[tp_IsCurrentVersion] AND t14.[tp_DirName] = t4.[tp_DirName] AND t14.[tp_LeafName] = t4.[tp_LeafName] AND t14.[tp_CalculatedVersion] = t4.[tp_CalculatedVersion] AND t14.[tp_Level] = t4.[tp_Level] AND t15.[tp_Ordinal] = t4.[tp_Ordinal] AND t4.[tp_FieldId] = ''{e2f67328-beae-443a-91e6-34278ef58179}'' LEFT OUTER JOIN UserDataJunctionsVersioned AS t6 ON t14.[tp_SiteId] = t6.[tp_SiteId] AND t14.[tp_DeleteTransactionId] = t6.[tp_DeleteTransactionId] AND t14.[tp_IsCurrentVersion] = t6.[tp_IsCurrentVersion] AND t14.[tp_DirName] = t6.[tp_DirName] AND t14.[tp_LeafName] = t6.[tp_LeafName] AND t14.[tp_CalculatedVersion] = t6.[tp_CalculatedVersion] AND t14.[tp_Level] = t6.[tp_Level] AND t15.[tp_Ordinal] = t6.[tp_Ordinal] AND t6.[tp_FieldId] = ''{0e241992-fcea-4385-9dde-1bfd15602f5b}'' LEFT OUTER JOIN UserDataJunctionsVersioned AS t7 ON t14.[tp_SiteId] = t7.[tp_SiteId] AND t14.[tp_DeleteTransactionId] = t7.[tp_DeleteTransactionId] AND t14.[tp_IsCurrentVersion] = t7.[tp_IsCurrentVersion] AND t14.[tp_DirName] = t7.[tp_DirName] AND t14.[tp_LeafName] = t7.[tp_LeafName] AND t14.[tp_CalculatedVersion] = t7.[tp_CalculatedVersion] AND t14.[tp_Level] = t7.[tp_Level] AND t15.[tp_Ordinal] = t7.[tp_Ordinal] AND t7.[tp_FieldId] = ''{67e5ed65-a2e4-4522-918f-cce886fdda5c}'' LEFT OUTER JOIN UserDataJunctionsVersioned AS t8 ON t14.[tp_SiteId] = t8.[tp_SiteId] AND t14.[tp_DeleteTransactionId] = t8.[tp_DeleteTransactionId] AND t14.[tp_IsCurrentVersion] = t8.[tp_IsCurrentVersion] AND t14.[tp_DirName] = t8.[tp_DirName] AND t14.[tp_LeafName] = t8.[tp_LeafName] AND t14.[tp_CalculatedVersion] = t8.[tp_CalculatedVersion] AND t14.[tp_Level] = t8.[tp_Level] AND t15.[tp_Ordinal] = t8.[tp_Ordinal] AND t8.[tp_FieldId] = ''{cec57d0f-6e5b-4e08-bafe-c8759ba0c8b2}'' LEFT OUTER JOIN UserDataJunctionsVersioned AS t9 ON t14.[tp_SiteId] = t9.[tp_SiteId] AND t14.[tp_DeleteTransactionId] = t9.[tp_DeleteTransactionId] AND t14.[tp_IsCurrentVersion] = t9.[tp_IsCurrentVersion] AND t14.[tp_DirName] = t9.[tp_DirName] AND t14.[tp_LeafName] = t9.[tp_LeafName] AND t14.[tp_CalculatedVersion] = t9.[tp_CalculatedVersion] AND t14.[tp_Level] = t9.[tp_Level] AND t15.[tp_Ordinal] = t9.[tp_Ordinal] AND t9.[tp_FieldId] = ''{6cd2e861-f434-4b25-ad8f-b0930311759d}'' LEFT OUTER JOIN UserDataJunctionsVersioned AS t10 ON t14.[tp_SiteId] = t10.[tp_SiteId] AND t14.[tp_DeleteTransactionId] = t10.[tp_DeleteTransactionId] AND t14.[tp_IsCurrentVersion] = t10.[tp_IsCurrentVersion] AND t14.[tp_DirName] = t10.[tp_DirName] AND t14.[tp_LeafName] = t10.[tp_LeafName] AND t14.[tp_CalculatedVersion] = t10.[tp_CalculatedVersion] AND t14.[tp_Level] = t10.[tp_Level] AND t15.[tp_Ordinal] = t10.[tp_Ordinal] AND t10.[tp_FieldId] = ''{b743b55b-d144-4940-b25a-601ff3615587}'' LEFT OUTER JOIN (SELECT * FROM UserData AS t19_u WITH(NOLOCK) INNER JOIN Docs AS t19_d WITH(NOLOCK) ON (t19_d.DoclibRowId = t19_u.tp_ID AND t19_d.SiteId = t19_u.tp_SiteId AND t19_d.SiteId = @L2 AND t19_d.DirName = t19_u.tp_DirName AND t19_d.LeafName = t19_u.tp_LeafName AND t19_d.Level = t19_u.tp_Level AND (t19_u.tp_Level = 255 AND t19_d.LTCheckoutUserId =@IU OR (t19_u.tp_Level = 1 AND (t19_u.tp_DraftOwnerId IS NULL OR (t19_u.tp_DraftOwnerId <>@IU AND t19_d.ScopeId NOT IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233''))) OR t19_u.tp_Level = 2 AND (t19_u.tp_DraftOwnerId = @IU OR t19_d.ScopeId IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233''))) AND (t19_d.LTCheckoutUserId IS NULL OR t19_d.LTCheckoutUserId <> @IU )) AND (t19_d.ScopeId IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233'')))) AS t19 ON (t19.[tp_ListId] = @L7 AND t19.[tp_Id] = t2.[tp_ID] AND t19.[tp_RowOrdinal] = 0) LEFT OUTER JOIN (SELECT * FROM UserData AS t20_u WITH(NOLOCK) INNER JOIN Docs AS t20_d WITH(NOLOCK) ON (t20_d.DoclibRowId = t20_u.tp_ID AND t20_d.SiteId = t20_u.tp_SiteId AND t20_d.SiteId = @L2 AND t20_d.DirName = t20_u.tp_DirName AND t20_d.LeafName = t20_u.tp_LeafName AND t20_d.Level = t20_u.tp_Level AND (t20_u.tp_Level = 255 AND t20_d.LTCheckoutUserId =@IU OR (t20_u.tp_Level = 1 AND (t20_u.tp_DraftOwnerId IS NULL OR (t20_u.tp_DraftOwnerId <>@IU AND t20_d.ScopeId NOT IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233''))) OR t20_u.tp_Level = 2 AND (t20_u.tp_DraftOwnerId = @IU OR t20_d.ScopeId IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233''))) AND (t20_d.LTCheckoutUserId IS NULL OR t20_d.LTCheckoutUserId <> @IU )) AND (t20_d.ScopeId IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233'')))) AS t20 ON (t20.[tp_ListId] = @L7 AND t20.[tp_Id] = t3.[tp_ID] AND t20.[tp_RowOrdinal] = 0) LEFT OUTER JOIN (SELECT * FROM UserData AS t21_u WITH(NOLOCK) INNER JOIN Docs AS t21_d WITH(NOLOCK) ON (t21_d.DoclibRowId = t21_u.tp_ID AND t21_d.SiteId = t21_u.tp_SiteId AND t21_d.SiteId = @L2 AND t21_d.DirName = t21_u.tp_DirName AND t21_d.LeafName = t21_u.tp_LeafName AND t21_d.Level = t21_u.tp_Level AND (t21_u.tp_Level = 255 AND t21_d.LTCheckoutUserId =@IU OR (t21_u.tp_Level = 1 AND (t21_u.tp_DraftOwnerId IS NULL OR (t21_u.tp_DraftOwnerId <>@IU AND t21_d.ScopeId NOT IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233''))) OR t21_u.tp_Level = 2 AND (t21_u.tp_DraftOwnerId = @IU OR t21_d.ScopeId IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233''))) AND (t21_d.LTCheckoutUserId IS NULL OR t21_d.LTCheckoutUserId <> @IU )) AND (t21_d.ScopeId IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233'')))) AS t21 ON (t21.[tp_ListId] = @L8 AND t21.[tp_Id] = t4.[tp_ID] AND t21.[tp_RowOrdinal] = 0) LEFT OUTER JOIN (SELECT * FROM UserData AS t22_u WITH(NOLOCK) INNER JOIN Docs AS t22_d WITH(NOLOCK) ON (t22_d.DoclibRowId = t22_u.tp_ID AND t22_d.SiteId = t22_u.tp_SiteId AND t22_d.SiteId = @L2 AND t22_d.DirName = t22_u.tp_DirName AND t22_d.LeafName = t22_u.tp_LeafName AND t22_d.Level = t22_u.tp_Level AND (t22_u.tp_Level = 255 AND t22_d.LTCheckoutUserId =@IU OR (t22_u.tp_Level = 1 AND (t22_u.tp_DraftOwnerId IS NULL OR (t22_u.tp_DraftOwnerId <>@IU AND t22_d.ScopeId NOT IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233''))) OR t22_u.tp_Level = 2 AND (t22_u.tp_DraftOwnerId = @IU OR t22_d.ScopeId IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233''))) AND (t22_d.LTCheckoutUserId IS NULL OR t22_d.LTCheckoutUserId <> @IU )) AND (t22_d.ScopeId=@L3))) AS t22 ON (t22.[tp_ListId] = @L4 AND t22.[tp_Id] = t6.[tp_ID] AND t22.[tp_RowOrdinal] = 0) LEFT OUTER JOIN (SELECT * FROM UserData AS t23_u WITH(NOLOCK) INNER JOIN Docs AS t23_d WITH(NOLOCK) ON (t23_d.DoclibRowId = t23_u.tp_ID AND t23_d.SiteId = t23_u.tp_SiteId AND t23_d.SiteId = @L2 AND t23_d.DirName = t23_u.tp_DirName AND t23_d.LeafName = t23_u.tp_LeafName AND t23_d.Level = t23_u.tp_Level AND (t23_u.tp_Level = 255 AND t23_d.LTCheckoutUserId =@IU OR (t23_u.tp_Level = 1 AND (t23_u.tp_DraftOwnerId IS NULL OR (t23_u.tp_DraftOwnerId <>@IU AND t23_d.ScopeId NOT IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233''))) OR t23_u.tp_Level = 2 AND (t23_u.tp_DraftOwnerId = @IU OR t23_d.ScopeId IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233''))) AND (t23_d.LTCheckoutUserId IS NULL OR t23_d.LTCheckoutUserId <> @IU )) AND (t23_d.ScopeId IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233'')))) AS t23 ON (t23.[tp_ListId] = @L8 AND t23.[tp_Id] = t7.[tp_ID] AND t23.[tp_RowOrdinal] = 0) LEFT OUTER JOIN (SELECT * FROM UserData AS t24_u WITH(NOLOCK) INNER JOIN Docs AS t24_d WITH(NOLOCK) ON (t24_d.DoclibRowId = t24_u.tp_ID AND t24_d.SiteId = t24_u.tp_SiteId AND t24_d.SiteId = @L2 AND t24_d.DirName = t24_u.tp_DirName AND t24_d.LeafName = t24_u.tp_LeafName AND t24_d.Level = t24_u.tp_Level AND (t24_u.tp_Level = 255 AND t24_d.LTCheckoutUserId =@IU OR (t24_u.tp_Level = 1 AND (t24_u.tp_DraftOwnerId IS NULL OR (t24_u.tp_DraftOwnerId <>@IU AND t24_d.ScopeId NOT IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233''))) OR t24_u.tp_Level = 2 AND (t24_u.tp_DraftOwnerId = @IU OR t24_d.ScopeId IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233''))) AND (t24_d.LTCheckoutUserId IS NULL OR t24_d.LTCheckoutUserId <> @IU )) AND (t24_d.ScopeId=@L3))) AS t24 ON (t24.[tp_ListId] = @L4 AND t24.[tp_Id] = t8.[tp_ID] AND t24.[tp_RowOrdinal] = 0) LEFT OUTER JOIN (SELECT * FROM UserData AS t25_u WITH(NOLOCK) INNER JOIN Docs AS t25_d WITH(NOLOCK) ON (t25_d.DoclibRowId = t25_u.tp_ID AND t25_d.SiteId = t25_u.tp_SiteId AND t25_d.SiteId = @L2 AND t25_d.DirName = t25_u.tp_DirName AND t25_d.LeafName = t25_u.tp_LeafName AND t25_d.Level = t25_u.tp_Level AND (t25_u.tp_Level = 255 AND t25_d.LTCheckoutUserId =@IU OR (t25_u.tp_Level = 1 AND (t25_u.tp_DraftOwnerId IS NULL OR (t25_u.tp_DraftOwnerId <>@IU AND t25_d.ScopeId NOT IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233''))) OR t25_u.tp_Level = 2 AND (t25_u.tp_DraftOwnerId = @IU OR t25_d.ScopeId IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233''))) AND (t25_d.LTCheckoutUserId IS NULL OR t25_d.LTCheckoutUserId <> @IU )) AND (t25_d.ScopeId IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233'')))) AS t25 ON (t25.[tp_ListId] = @L7 AND t25.[tp_Id] = t9.[tp_ID] AND t25.[tp_RowOrdinal] = 0) LEFT OUTER JOIN (SELECT * FROM UserData AS t26_u WITH(NOLOCK) INNER JOIN Docs AS t26_d WITH(NOLOCK) ON (t26_d.DoclibRowId = t26_u.tp_ID AND t26_d.SiteId = t26_u.tp_SiteId AND t26_d.SiteId = @L2 AND t26_d.DirName = t26_u.tp_DirName AND t26_d.LeafName = t26_u.tp_LeafName AND t26_d.Level = t26_u.tp_Level AND (t26_u.tp_Level = 255 AND t26_d.LTCheckoutUserId =@IU OR (t26_u.tp_Level = 1 AND (t26_u.tp_DraftOwnerId IS NULL OR (t26_u.tp_DraftOwnerId <>@IU AND t26_d.ScopeId NOT IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233''))) OR t26_u.tp_Level = 2 AND (t26_u.tp_DraftOwnerId = @IU OR t26_d.ScopeId IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233''))) AND (t26_d.LTCheckoutUserId IS NULL OR t26_d.LTCheckoutUserId <> @IU )) AND (t26_d.ScopeId IN (''028D254C-1C71-481D-A62D-5F1C2B1F3233'')))) AS t26 ON (t26.[tp_ListId] = @L7 AND t26.[tp_Id] = t10.[tp_ID] AND t26.[tp_RowOrdinal] = 0) ) AS t16 LEFT OUTER JOIN Docs AS t18 WITH(NOLOCK) ON t18.[SiteId] = t16.[tp_SiteId] AND t18.[DeleteTransactionId] = t16.[tp_DeleteTransactionId] AND t18.[DirName] = t16.[tp_DirName] AND t18.[LeafName] = t16.[tp_LeafName] AND t18.[Level] = t16.[tp_Level] LEFT OUTER JOIN UserDataVersioned AS t17 WITH(NOLOCK) ON t16.[tp_SiteId] = t17.[tp_SiteId] AND t16.[tp_DeleteTransactionId] = t17.[tp_DeleteTransactionId] AND t16.[tp_IsCurrentVersion] = t17.[tp_IsCurrentVersion] AND t16.[tp_DirName] = t17.[tp_DirName] AND t16.[tp_LeafName] = t17.[tp_LeafName] AND t16.[tp_CalculatedVersion] = t17.[tp_CalculatedVersion] AND t16.[tp_Level] = t17.[tp_Level] AND t17.[tp_RowOrdinal] = 0 ORDER BY t16.tp_UIVersion Desc,t16.tp_ID Asc,t16.[tp_Ordinal]'
,
N'@L0 uniqueidentifier,@L2 uniqueidentifier,@IU int,@L3 uniqueidentifier,@L4 uniqueidentifier,@L5 uniqueidentifier,@I6P int,@DN nvarchar(260),@DNEL nvarchar(1024),@L7 uniqueidentifier,@L8 uniqueidentifier'
,
@L0='00000000-0000-0000-0000-000000000000',
@L2='BC921A53-1407-4D3F-A3F4-FFCA8E38191D',
@IU=1073741823,
@L3='028D254C-1C71-481D-A62D-5F1C2B1F3233',
@L4='6B95520B-F7FD-4378-A28D-35153C24329D',
@L5='3F05AD46-3239-4F59-B9FC-577C4916869D',
@I6P=6371,
@DN=N'Lists/Product Information',
@DNEL=N'Lists/Product Information',
@L7='C2C4D95F-5156-48D5-82BE-D171F015D499',
@L8='A5C3BB1F-7849-4AAB-B1F0-489F6BBC984B'
Upvotes: 0
Views: 1012
Reputation: 96648
Since performance has suddenly gotten bad, the best I can offer is you might want to update statistics. There's not a lot we can do to fix the lousy datamodel of something like Sharepoint.
Upvotes: 1