小编Pரத*_*ீப்的帖子

外部应用与左连接与派生表中的聚合

考虑以下设置。涉及三个表#CCP_DETAILS_TEMPPeriod并且ACTUALS_DETAILS

#CCP_DETAILS_TEMP会有50000记录,ACTUALS_DETAILS可以有5000000记录,period表会有2000记录

指数详情:

CREATE UNIQUE CLUSTERED INDEX IX_CCP_DETAILS_TEMP
  ON #CCP_DETAILS_TEMP (CCP_DETAILS_SID)

CREATE NONCLUSTERED INDEX IXN_ACTUALS_DETAILS_PERIOD_SID_RS_MODEL_SID_CCP_DETAILS_SID_QUANTITY_INCLUSION
  ON ACTUALS_DETAILS (PERIOD_SID, CCP_DETAILS_SID, RS_MODEL_SID, QUANTITY_INCLUSION)
  INCLUDE( SALES, QUANTITY, DISCOUNT) 

CREATE UNIQUE CLUSTERED INDEX IX_PERIOD
  ON PERIOD (PERIOD_SID)
Run Code Online (Sandbox Code Playgroud)

我有一个要求,我为此编写了三种不同的方法来实现结果。现在我想知道哪个更好。

所有三个查询都或多或少地同时运行。我需要一些专家的建议,以了解哪一个会表现得更好。任何一种方法都有什么缺点吗

方法一: Outer Apply

花的时间: 4615 Milli Seconds

SELECT c.CCP_DETAILS_SID,
       A.PERIOD_SID,
       SALES,
       QUANTITY
FROM   #CCP_DETAILS_TEMP c
       CROSS JOIN (SELECT PERIOD_SID
                   FROM   BPIGTN_GAL_APP_DEV_ARM..PERIOD
                   WHERE  PERIOD_SID BETWEEN 577 AND 624)A
       OUTER apply …
Run Code Online (Sandbox Code Playgroud)

performance sql-server execution-plan sql-server-2012

4
推荐指数
1
解决办法
1964
查看次数

将 mdf 文件中的可用空间释放到操作系统

我们有一个 120GB 的数据库。有一个包含 60GB 数据的表,这是无用的,我们已经截断了它。

现在数据库大小为 120GB,可用空间为 60GB。数据库至少在 3 个月内不会增长到 60GB。所以我们可以缩小数据文件。

我知道碎片问题。我可以重建我的索引,因为我们的不是 24*7 的数据库。

请建议缩小MDF文件

sql-server shrink database-size datafile

4
推荐指数
2
解决办法
4871
查看次数

三更新查询 vs 单更新查询性能

正在尝试优化程序。过程中有 3 个不同的更新查询。

update #ResultSet
set MajorSector = case 
        when charindex('  ', Sector) > 2 then rtrim(ltrim(substring(Sector, 0, charindex('  ', Sector)))) 
            else ltrim(rtrim(sector)) 
        end

update #ResultSet
set MajorSector = substring(MajorSector, 5, len(MajorSector)-4)
where left(MajorSector,4) in ('(00)','(01)','(02)','(03)','(04)','(05)','(06)','(07)','(08)','(09)')

update #ResultSet
set MajorSector = substring(MajorSector, 4, len(MajorSector)-3)
where left(MajorSector,3) in ('(A)','(B)','(C)','(D)','(E)','(F)','(G)','(H)','(I)','(J)','(K)','(L)','(M)','(N)','(O)','(P)','(Q)','(R)','(S)','(T)','(U)','(V)','(W)','(X)','(Y)','(Z)')
Run Code Online (Sandbox Code Playgroud)

要完成所有三个更新查询,只需不到10 秒

所有三个更新查询的执行计划。

https://www.brentozar.com/pastetheplan/?id=r11BLfq7b

我的计划是将三个不同的更新查询变成一个更新查询,这样可以减少I/O。

;WITH ResultSet
     AS (SELECT CASE
                  WHEN LEFT(temp_MajorSector, 4) IN ( '(00)', '(01)', '(02)', '(03)', '(04)', '(05)', '(06)', '(07)', '(08)', '(09)' ) 
                      THEN Substring(temp_MajorSector, 5, Len(temp_MajorSector) …
Run Code Online (Sandbox Code Playgroud)

performance sql-server update query-performance

4
推荐指数
2
解决办法
558
查看次数

如何查找正在运行的作业的会话ID

尝试获取正在执行的作业的会话 ID

;with JobDetails as
(
select Job_Id = left(intr1,charindex(':',intr1)-1),
       Step = substring(intr1,charindex(':',intr1)+1,charindex(')',intr1)-charindex(':',intr1)-1),
       SessionId = spid
    from master.dbo.sysprocesses x 
    cross apply (select replace(x.program_name,'SQLAgent - TSQL JobStep (Job ','')) cs (intr1)
    where spid > 50 and x.program_name like 'SQLAgent - TSQL JobStep (Job %'
)
select * 
    from msdb.dbo.sysjobs j 
    inner join JobDetails jd on j.job_id = jd.Job_Id
Run Code Online (Sandbox Code Playgroud)

但它会引发以下错误

消息 8169,级别 16,状态 2,第 47 行 从字符串转换为 uniqueidentifier 时转换失败。

我尝试将其转换job_idvarbinary但没有产生任何结果

;with JobDetails as
(
select Job_Id = left(intr1,charindex(':',intr1)-1), …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql

2
推荐指数
1
解决办法
9658
查看次数

SQL Server 2016 插件不起作用

最近我在我的 PC 上安装了 SQL Server 2016。

这是我的服务器的详细信息:

Microsoft SQL Server 2016 (RC1) - 13.0.1200.242 (X64)
2016 年 3 月 10 日 16:49:45
版权所有 (c)
Windows 10 Pro 6.3(内部版本10586:)上的Microsoft Corporation企业评估版(64 位)

在我的 PC 上安装服务器后,尝试安装以下插件

  1. 适用于 SSMS V3.6.1 的 SQL 漂亮打印机插件
  2. SQLSentry 计划浏览器

问题:

  1. SQL Pretty Printer甚至没有安装它会抛出错误,例如

    在此处输入图片说明

    但是SQL Pretty Printer站点说它适用于 SQL Server 2016,您可以查看链接。

    在此处输入图片说明

  2. 下一个SQLSentry 计划资源管理器已成功安装,但插件未显示在SSMS.

版本: v2.8(内部版本 9.0.9252.0)

在此处输入图片说明

谁能帮我解决这个问题。请注意,两者都在 SQL Server 2014 中完美运行。

sql-server ssms plugins sql-server-2016 windows-10

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