Sql server 跨多个数据库优化慢速联合所有查询

Sql server 跨多个数据库优化慢速联合所有查询,sql-server,sql-server-2016,Sql Server,Sql Server 2016,您可以尝试创建这样的视图。只需在此源代码上执行查询,就可以稍微提高速度,只需在其底部添加其余部分(在where之前还需要一个空格) 然后 首先你需要问一个问题(如何优化?进一步优化什么?等等)。第二,请至少发布一个带有索引的表结构。每个表上是否都有关于事件日期的索引?发布的内容不是有效的sql,因为where关键字前没有空格。这让我相信这不是你真正的疑问。如果没有视图定义和它下面的表结构,任何人都不可能在这里帮助您。创建一个数据仓库并将数据发送给它。嗯?我看不出有什么不同?这怎么会让这更快? S

您可以尝试创建这样的视图。只需在此源代码上执行查询,就可以稍微提高速度,只需在其底部添加其余部分(在
where
之前还需要一个空格)

然后


首先你需要问一个问题(如何优化?进一步优化什么?等等)。第二,请至少发布一个带有索引的表结构。每个表上是否都有关于事件日期的索引?发布的内容不是有效的sql,因为where关键字前没有空格。这让我相信这不是你真正的疑问。如果没有视图定义和它下面的表结构,任何人都不可能在这里帮助您。创建一个数据仓库并将数据发送给它。嗯?我看不出有什么不同?这怎么会让这更快?
SELECT 'ULTIPRO_MDUSG0002' AS dbname
           ,max(EventDate)
FROM [ULTIPRO_MDUSG0002].DBO.vw_rbsUserLoginHistorywhere SourceType = 
'MOBILE'
UNION ALL
SELECT 'ULTIPRO_MDUSG0027' AS dbname
           ,max(EventDate)
FROM [ULTIPRO_MDUSG0027].DBO.vw_rbsUserLoginHistorywhere SourceType =     'MOBILE'
    UNION ALL
    SELECT 'ULTIPRO_MDUSG0028' AS dbname
               ,max(EventDate)
    FROM [ULTIPRO_MDUSG0028].DBO.vw_rbsUserLoginHistorywhere SourceType = 'MOBILE'
    UNION ALL
    SELECT 'ULTIPRO_MDUSG0050' AS dbname
               ,max(EventDate)
    FROM [ULTIPRO_MDUSG0050].DBO.vw_rbsUserLoginHistorywhere SourceType = 'MOBILE'
UNION ALL
SELECT 'ULTIPRO_MDUSG0051' AS dbname
               ,max(EventDate)
FROM [ULTIPRO_MDUSG0051].DBO.vw_rbsUserLoginHistorywhere SourceType = 'MOBILE'
UNION ALL
SELECT 'ULTIPRO_MDUSG0071' AS dbname
               ,max(EventDate)
FROM [ULTIPRO_MDUSG0071].DBO.vw_rbsUserLoginHistorywhere SourceType = 'MOBILE'
UNION ALL
SELECT 'ULTIPRO_MDUSG0072' AS dbname
               ,max(EventDate)
FROM [ULTIPRO_MDUSG0072].DBO.vw_rbsUserLoginHistorywhere SourceType = 'MOBILE'
UNION ALL
SELECT 'ULTIPRO_MDUSG0073' AS dbname
               ,max(EventDate)
FROM [ULTIPRO_MDUSG0073].DBO.vw_rbsUserLoginHistorywhere SourceType = 'MOBILE'
UNION ALL
SELECT 'ULTIPRO_MDUSG0074' AS dbname
               ,max(EventDate)
FROM [ULTIPRO_MDUSG0074].DBO.vw_rbsUserLoginHistorywhere SourceType = 'MOBILE'
UNION ALL
SELECT 'ULTIPRO_MDUSG0075' AS dbname
               ,max(EventDate)
FROM [ULTIPRO_MDUSG0075].DBO.vw_rbsUserLoginHistorywhere SourceType = 'MOBILE'
UNION ALL
SELECT 'ULTIPRO_MDUSG0076' AS dbname
               ,max(EventDate)
FROM [ULTIPRO_MDUSG0076].DBO.vw_rbsUserLoginHistorywhere SourceType = 'MOBILE'
UNION ALL
SELECT 'ULTIPRO_MDUSG0077' AS dbname
               ,max(EventDate)
FROM [ULTIPRO_MDUSG0077].DBO.vw_rbsUserLoginHistorywhere SourceType = 'MOBILE'
UNION ALL
SELECT 'ULTIPRO_MDUSG0078' AS dbname
               ,max(EventDate)
FROM [ULTIPRO_MDUSG0078].DBO.vw_rbsUserLoginHistorywhere SourceType = 'MOBILE'
UNION ALL
SELECT 'ULTIPRO_MDUSG0079' AS dbname
               ,max(EventDate)
FROM [ULTIPRO_MDUSG0079].DBO.vw_rbsUserLoginHistorywhere SourceType = 'MOBILE'
UNION ALL
SELECT 'ULTIPRO_MDUSG0080' AS dbname
               ,max(EventDate)
FROM [ULTIPRO_MDUSG0080].DBO.vw_rbsUserLoginHistorywhere SourceType = 'MOBILE'
UNION ALL
SELECT 'ULTIPRO_MDUSG0081' AS dbname
               ,max(EventDate)
FROM [ULTIPRO_MDUSG0081].DBO.vw_rbsUserLoginHistorywhere SourceType = 'MOBILE'
UNION ALL
SELECT 'ULTIPRO_MDUSG0082' AS dbname
               ,max(EventDate)
FROM [ULTIPRO_MDUSG0082].DBO.vw_rbsUserLoginHistorywhere SourceType = 'MOBILE'
UNION ALL
SELECT 'ULTIPRO_MDUSG0084' AS dbname
               ,max(EventDate)
FROM [ULTIPRO_MDUSG0084].DBO.vw_rbsUserLoginHistorywhere SourceType = 'MOBILE'
UNION ALL
SELECT 'ULTIPRO_MDUSG0089' AS dbname
               ,max(EventDate)
FROM [ULTIPRO_MDUSG0089].DBO.vw_rbsUserLoginHistorywhere SourceType = 'MOBILE'
UNION ALL
SELECT 'ULTIPRO_MDUSG0090' AS dbname
               ,max(EventDate)
FROM [ULTIPRO_MDUSG0090].DBO.vw_rbsUserLoginHistorywhere SourceType = 'MOBILE'
UNION ALL
SELECT 'ULTIPRO_MDUSG0091' AS dbname
               ,max(EventDate)
FROM [ULTIPRO_MDUSG0091].DBO.vw_rbsUserLoginHistorywhere SourceType = 'MOBILE'
UNION ALL
SELECT 'ULTIPRO_MDUSG0096' AS dbname
               ,max(EventDate)
FROM [ULTIPRO_MDUSG0096].DBO.vw_rbsUserLoginHistorywhere SourceType = 'MOBILE'
UNION ALL
SELECT 'ULTIPRO_MDUSG0155' AS dbname
               ,max(EventDate)
FROM [ULTIPRO_MDUSG0155].DBO.vw_rbsUserLoginHistorywhere SourceType =     'MOBILE'
UNION ALL
SELECT 'ULTIPRO_MDUSG0156' AS dbname
               ,max(EventDate)    
FROM [ULTIPRO_MDUSG0156].DBO.vw_rbsUserLoginHistorywhere SourceType = 'MOBILE'
UNION ALL
SELECT 'ULTIPRO_MDUSG0157' AS dbname
               ,max(EventDate)
FROM [ULTIPRO_MDUSG0157].DBO.vw_rbsUserLoginHistorywhere SourceType = 'MOBILE'
UNION ALL
SELECT 'ULTIPRO_MDUSG0158' AS dbname
               ,max(EventDate)
FROM [ULTIPRO_MDUSG0158].DBO.vw_rbsUserLoginHistorywhere SourceType = 'MOBILE'
UNION ALL
SELECT 'ULTIPRO_MDUSG0159' AS dbname
               ,max(EventDate)
FROM [ULTIPRO_MDUSG0159].DBO.vw_rbsUserLoginHistorywhere SourceType = 'MOBILE'
UNION ALL
SELECT 'ULTIPRO_MDUSG0182' AS dbname
               ,max(EventDate)
FROM [ULTIPRO_MDUSG0182].DBO.vw_rbsUserLoginHistorywhere SourceType = 'MOBILE'
UNION
CREATE VIEW AllHistory
AS

SELECT 'ULTIPRO_MDUSG0002' AS dbname
           ,max(EventDate)
FROM [ULTIPRO_MDUSG0002].DBO.vw_rbsUserLoginHistory where SourceType = 
'MOBILE'
UNION ALL
SELECT 'ULTIPRO_MDUSG0027' AS dbname
       ,max(EventDate)
FROM [ULTIPRO_MDUSG0027].DBO.vw_rbsUserLoginHistory where SourceType =     'MOBILE'
UNION ALL
--the rest of them here.. 
SELECT * 
FROM AllHistory