小编Ric*_*ick的帖子

SQL Server 2017 备份时崩溃,因为文件路径错误

我试图恢复我的数据库和 SQL Server 不断崩溃。我会在 SSMS 中收到一条消息,指出存在网络传输错误(连接因崩溃而中断)。我检查了日志,发现 SQL Server 意外关闭。然后我将不得不去重新启动服务。

我将问题缩小到 GUI 试图运行的脚本。问题是在进行尾日志备份时,备份文件的路径是错误的。它应该是D:\mapbenefits\...

BACKUP LOG [mapbenefits]
TO  DISK = N'D:mapbenefits_LogBackup_2019-02-21_13-58-24.bak'
WITH NOFORMAT, NOINIT,  NAME = N'mapbenefits_LogBackup_2019-02-21_13-58-24',
    NOSKIP, NOREWIND, NOUNLOAD,  NORECOVERY ,  STATS = 5
Run Code Online (Sandbox Code Playgroud)

我有两个问题。

  1. 如何修复此路径?我尝试进入服务器设置,备份路径D:没有斜线。如果我添加斜杠,gui 会将其删除。这是 SSMS v17.9.1。我可以选择D:\mapbenefits\并且有效,但我想要D:\DATABASE\...

  2. 这是一个错误吗?SQL 服务器是否应该因为路径输入错误而崩溃?一旦我修复了文件路径,它就没有问题了。我可以通过整理文件路径随时复制。

如果我运行查询来检查版本,我会得到 CU13,但如果我进入设置,我会看到版本 14.0.1000.169。

看起来这是一个错误并且可以重现,所以我将它发布到这里:https : //feedback.azure.com/forums/908035-sql-server/suggestions/36920542-incorrect-filepath-with-backup-log-command-原因

sql-server backup sql-server-2017

25
推荐指数
1
解决办法
1733
查看次数

为什么左连接比内连接快?

所以我正在调整这个查询,我很确定在这种情况下,我可以用左联接替换内部联接而不影响数据。但是,我不完全确定为什么这会更快。这是查询:

SELECT DISTINCT  cl.NAME                            AS company_name,
                     cl.id                              AS company_id,
                     ep.Plan__c                           AS plan_id,
                     ep.Employee__c,
                     ep.id,
                     do.Subcategory__c,
                     ep.Plan_Type__c,
                     pt.SubType,
                     Sum((pt.[shares] * fvh.[ValuePerShare])) AS TotalValue,
                     ppe.Deferral_Option__c,
                     dt.Defer_type_Code,
                     do.Short_Code__c,
                     pt.ContributionYear
  FROM   dbo.ParticipantTrades pt WITH (NOLOCK) 
        INNER JOIN dbo.PayoutPathElection ppe WITH (NOLOCK) 
                ON pt.payoutPathElectionID = ppe.Id 
        INNER JOIN dbo.DeferralOption do WITH (NOLOCK) 
                ON ppe.Deferral_Option__c = do.id 
        INNER JOIN dbo.EmployeePlan ep WITH (NOLOCK) 
                ON pt.employeePlan = ep.Id 
        LEFT JOIN dbo.DeferralType dt WITH (NOLOCK) 
                ON pt.deferralType = dt.defID
        INNER JOIN dbo.Fnc_lastfundvalue('2019-01-30') AS fvh 
                ON pt.fund = fvh.Fund …
Run Code Online (Sandbox Code Playgroud)

performance sql-server performance-tuning

5
推荐指数
1
解决办法
7778
查看次数