标签: sql-server-2012

由于 select 中的一列,查询时间加倍

我有一个存储过程,它正在计算一些数据并将其插入到临时表中。

然后我从临时表中选择数据。

Select
    AssetId = iAssetId,
    .....
    SpeedKM = fSpeed,
    [Address] = sState +', '+ sDistrict +', ' +sPoi +', ' + sRoad +', '+sPoi,
    MapUrl = @sUrlHeader+'/Report/ReportOnMap/?id='
        +CONVERT(VARCHAR(10), @iCompanyId)+'&ReportName=OverspeedReport'
        +'&AssetId='+ CONVERT(VARCHAR(10), iAssetId)
        +'&MaxSpeed='+ CONVERT(VARCHAR(10), fSpeed)                     
        +'&OverspeedingDate=' + FORMAT(dtutcDateTime, 'dd-MMM-yyyy HH:mm:ss')
        +'&VehicleMonitoringLogId='+ CONVERT(VARCHAR, ol.iVehicleMonitoringId),
    [Locate] = 'Locate'

FROM #overspeedLogs ol
    ORDER BY ol.iAssetId, ol.dtUtcDateTime
Run Code Online (Sandbox Code Playgroud)

现在这个查询大约需要 1:45 分钟来执行。

但是当我删除列时

MapUrl = @sUrlHeader+'/Report/ReportOnMap/?id='
            +CONVERT(VARCHAR(10), @iCompanyId)+'&ReportName=OverspeedReport'
            +'&AssetId='+ CONVERT(VARCHAR(10), iAssetId)
            +'&MaxSpeed='+ CONVERT(VARCHAR(10), fSpeed)                     
            +'&OverspeedingDate=' + FORMAT(dtutcDateTime, 'dd-MMM-yyyy HH:mm:ss')
            +'&VehicleMonitoringLogId='+ CONVERT(VARCHAR, ol.iVehicleMonitoringId),
Run Code Online (Sandbox Code Playgroud)

存储过程只需要35 seconds …

performance sql-server sql-server-2012 query-performance

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

获取快照数据文件列表

我需要以编程方式删除一个包含所有快照的数据库,然后重新创建该数据库并创建一个新快照。我无法从查询中找到快照文件所在的位置。

本质上,我们有几个环境,它们在放置这些文件的位置上不一致,所以我需要我的代码足够聪明,以便将这些文件放回原来的位置。

澄清一下:当我说快照文件时,我指的是 .ss 文件。

sql-server t-sql snapshot sql-server-2012

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

9 位邮政编码报告的 LEN 为 12

我正在尝试解决让邮政编码正确显示的一些困难。

原始电子表格具有混合 5 位和 9 位格式的邮政编码。导入过程后,这些 9 位邮政编码报告的长度为 12 位。现在,当我尝试在 9 位邮政编码中添加连字符“-”时,由于长度错误和各种数据类型转换问题,我得到了异常结果和错误。

导入是使用 openrowset 方法从电子表格导入数据执行的。

当我查询新导入的数据时,我看到邮政编码显示与电子表格中的相同,但长度错误。

SELECT ZIP,
    LEN(LTRIM(RTRIM(Zip))) AS ZIPLENGTH
  FROM XLS_IMPORT
Run Code Online (Sandbox Code Playgroud)
SELECT ZIP,
    LEN(LTRIM(RTRIM(Zip))) AS ZIPLENGTH
  FROM XLS_IMPORT
Run Code Online (Sandbox Code Playgroud)

如果我选择数据的左侧 9 个字符,则所有内容都将转换为浮点数,并且邮政编码现在无法读取。

SELECT LEFT(ZIP,9) FROM XLS_IMPORT
WHERE LEN(LTRIM(RTRIM(ZIP))) = 12
Run Code Online (Sandbox Code Playgroud)
ZIP         ZIPLENGTH
45750       5
432013256   12
441153221   12
44120       5
441351362   12
Run Code Online (Sandbox Code Playgroud)

如何将这些邮政编码恢复为正确的 9 位数字?或者如何在报告长度为 12 的 9 位邮政编码中添加连字符?我的最终目标是简单地让 9 位邮政编码在中间有一个连字符。

Zip列的数据类型是float.

我刚刚发现我的一些电子表格(如 NJ 和 NY)在邮政编码的前导 0 之前有一个撇号。我需要研究如何处理 '0xxxx 邮政编码,以使其在我的一些电子表格导入中工作。

sql-server sql-server-2012 openrowset

3
推荐指数
2
解决办法
1992
查看次数

在查询时删除 PLE

在公司中,我们正在从事非常大的数据库项目。它使用 100GB 内存。有什么奇怪的,第一次运行查询 PLE 之前是 11k~,运行后下降到大约 70,无论如何,15 分钟后我再次检查 PLE 大约 1k~,当我再次运行查询时它下降到 60。为什么会发生?如果在运行查询之间的时间 PLE 增加是否意味着所有需要的数据都在缓存中?如果是这样,为什么在 15 分钟后运行相同的查询会导致 PLE 再次下降?

这是查询:

select
    ResultType = case r.TypeID
        when 'dlp' then 'DLP'
        when 'bill' then 'BILL'
        when 'evtlog' then 'EVTLOG'
    end,
    SerialNumber, 
    ESerialNumber, 
    ResultDateTime, 
    DateTimeStamp as SavedInSystem
from 
    Results r
where
    TypeID in ('typeid1','typeid2')
    and DateTimeStamp > '2016-05-19 23:00:00'
    and SerialNumber in ('serialnumber')
Run Code Online (Sandbox Code Playgroud)

我有一个聚集索引的datetimestamp和非在群集typeid, datetimestampresultdatetime, resultid, typeid和其他几个... @Update

    select
(physical_memory_in_use_kb/1024)Memory_usedby_Sqlserver_MB,
(locked_page_allocations_kb/1024 )Locked_pages_used_Sqlserver_MB,
(total_virtual_address_space_kb/1024 )Total_VAS_in_MB,
process_physical_memory_low,
process_virtual_memory_low
from sys. …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2012 page-life-expectancy

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

将主键/聚集索引从 Prod 复制到 DEv/Test env

我们遵循在产品上主动查询的表上创建主键/聚集索引的最佳实践。

现在有一个场景,我们需要在 DEV/test 上完成上述类似的更改。由于我们没想到我们可能会在开发中要求这样做,因此我们从未记录以映射类似的更改。

有没有更好更快的方法来做到这一点,而不是手动编写脚本并在以后创建它们。

谢谢。

primary-key clustered-index sql-server-2012

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

执行还原后是否应该重新启动数据库服务?

鉴于:

  • >100G 未压缩磁盘空间的数据库备份
  • SQL Server 2012 实例
  • 开发/测试系统主机(非生产)

恢复数据库后重新启动 MS SQL Server、Agent 等服务是否更好?为什么或者为什么不?

sql-server restore sql-server-2012

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

DBCC 命令的日志记录

是否有办法跟踪 DBCC 命令是否针对 SQL Server 数据库运行?

具体来说,我想查看以下 2 个命令是否已在任何时候运行?

DBCC FREEPROCCACHE DBCC DROPCLEANBUFFERS

原因是缓存不断清空,我很确定服务器上没有很大的内存压力。

我真的很想排除这样一个事实,即这是由某人完成的,这确实是我需要调查和/或向服务器添加更多内存的真正问题。

提前致谢大卫

sql-server sql-server-2012

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

SQL Server 全文爬网日志位置

这可能是一个愚蠢的问题,但我终生无法弄清楚我的 SQL Server 2012 实例的爬网日志在哪里。的TechNet说,下看%ProgramFiles%\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\LOG2008,但是LOG文件夹不存在下%ProgramFiles%\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL

在我最后一次 FTS 索引填充后,我有超过 500,000 条失败的记录,我需要知道问题是什么。

full-text-search sql-server-2012 log

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

同一 IP 下的多个可用性组

是否可以将 4 个可用性组分布在 3 个服务器上,所有这些服务器都在同一 IP 下?

例如,无论数据库是在服务器 1 还是服务器 3 中,我都希望用户连接到 SQLSTACK01 上的 DATABASE01。

谢谢!

sql-server-2012 availability-groups

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

并排安装 SQL SERVER 2016 SQL Server 2012

我正在尝试在已安装 SQL Server 2012 实例的服务器上安装 SQL Server 2016 - 2012 版本的所有共享和实例功能也已安装。我没有卸载这些的选项,我只需要安装一个单独的、独立的 SQL SERVER 2016 实例。

根据 MS,支持并排。但是它说:“你不能同时准备一个 SQL Server 2016 实例和一个准备好的 SQL Server 2012 实例”

这是什么意思?那么我可以将它们并排放置而没有任何问题吗?

非常感谢

sql-server installation sql-server-2012 sql-server-2016

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