在使用CONCAT用户定义的表类型时,我遇到了在我看来是一个奇怪的排序问题。
我已经把 SQL 放在下面,让我可以重现这个:
我有以下用户类型:
CREATE TYPE [dbo].[StringList] AS TABLE
(
[Value] VARCHAR(8000) NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
以及以下用于设置所有内容的查询:
DECLARE @ColumnNames AS TABLE([ColumnName] VARCHAR(MAX))
DECLARE @ValueTable AS [dbo].[StringList] --VariableLineA
--DECLARE @ValueTable AS TABLE([Value] VARCHAR(MAX)) --VariableLineB
INSERT INTO @ColumnNames([ColumnName])
VALUES
('Forename'),
('Surname')
INSERT INTO @ValueTable([Value])
VALUES
('Ellis'), ('Ali')
Run Code Online (Sandbox Code Playgroud)
这是我正在运行的查询:
SELECT CONCAT(STRING_AGG(CONCAT([ColumnName], ' - ', [sc].[Value]), ', '), ', ') -- QueryLineA
--CONCAT(STRING_AGG([ColumnName] + ' - ' + [sc].[Value], ', '), ', ') --QueryLineB
FROM @ValueTable AS [sc]
INNER JOIN @ColumnNames ON …Run Code Online (Sandbox Code Playgroud) 我试图让它们超过500 GB几张桌子碎片信息中,我使用...DETAILED的选项sys.dm_db_index_physical_stats。我在我们的预生产服务器上的生产数据库的还原副本上执行此操作,因此我不关心损害服务器上的任何性能。
我运行了它,看起来它正在串行运行,并且需要永远。有没有办法dm_db_index_physical_stats()并行运行?或者是否有任何其他设置干扰它?
我想DBCC TRACEON (8649)并且OPTION(USE HINT('ENABLE_PARALLEL_PLAN_PREFERENCE'))在 SQL Server 2014 中不可用。
还试图DBCC SETCPUWEIGHT(1000);从保罗·怀特的博客在这里。该博客提到了并行抑制器,其中之一是系统表。被dm_db_index_physical_stats()认为是系统表吗?
我需要知道在 express 版本的数据库中添加另一个数据文件(比如 MYDB)是否会有另外 10 GB 的大小,或者 10 GB 将是我们添加到数据库中的所有数据文件的总大小。实际上,我使用的是 SQL Server 2014 Express 版本,我们知道数据库大小限制为 10 GB,因此一旦数据库达到我不想要的 10 Gb,我必须将其存档。
我的目的是问这个问题,一旦数据库大小达到10GB,添加另一个数据文件是否可以帮助我避免归档数据库并继续使用同一个数据库?
我有一个varchar(200)列,其中包含诸如,
ABC123124_A12312
ABC123_A1212
ABC123124_B12312
AC123124_AD12312
A12312_123
等等..
我想用一个数字替换一个数字序列,*以便我可以对表格中的不同非数字模式进行分组。
这个集合的结果是
ABC*_A*
ABC*_B*
AC*_AD*
A*_*
我在下面编写了以下原始查询,它可以正常工作,但是在一张大表上运行需要很长时间。
我需要帮助重写或编辑它以提高它的性能。SQL Server 2014
-- 1. replace all numeric characters with '*'
-- 2. replace multiple consecutive '*' with just a single '*'
SELECT REPLACE
(REPLACE
(REPLACE
(REPLACE
(REPLACE
(REPLACE
(REPLACE
(REPLACE
(REPLACE
(REPLACE
(REPLACE
(REPLACE
(REPLACE(SampleID, '0', '*'),
'1', '*'),
'2', '*'),
'3', '*'),
'4', '*'),
'5', '*'),
'6', '*'),
'7', '*'),
'8', '*'),
'9', '*')
, '*', '~*') -- replace each …Run Code Online (Sandbox Code Playgroud) sql-server pattern-matching sql-server-2014 string-manipulation query-performance
我在测试 SQL Server 2014 上安装了 AdventureWorks2014 数据库。我计划执行以下查询:
SELECT *
FROM Sales.SalesOrderDetail sod
INNER JOIN Production.Product p ON sod.ProductID = p.ProductID
ORDER BY Style
Run Code Online (Sandbox Code Playgroud)
在实际执行之前,我有我的工作线程的以下图片:
在查询执行时,我再次检查了工作线程的状态:
如您所见,第二张图片中的 active_workers_count 总数高于第一张屏幕截图中的总数。从第二个屏幕截图中,我可以假设查询执行所需的总工作线程为 1+2+1+2=6。但是,当我查看执行计划中索引扫描运算符的属性时,我看到:
似乎我的并行度为 4,这意味着 4 个线程正在并行处理行。
我很困惑,无法确定在查询执行期间运行了多少线程。有人可以向我解释为什么 active_workers_count 与 DOP 不同吗?
对于我们的一个 SQL 服务器,有一个过程会造成阻塞混乱:
大多数情况下,该存储过程在一秒内完成,但不知何故使事务保持打开状态。我从 sp_whoisactive 看到的是 status = sleep 并打开 tran 1 持续大约 5-6 分钟。在这段时间内,出现了起伏的阻塞链。
这个 SP 没有像 BEGIN 和 END TRAN 这样的任何事务。它做了一些基本的 select col,col2,col3.... into #temptables from table1 inner join table 2 ... 然后从 #temptable 中选择
当我们从应用程序检查为什么可能有一个事务保持打开状态时,我正在阅读这些场景以在 SP 本身中使用 XACT ABORT ON。但是当不涉及事务时,XACT ABORT 设置如何在这种情况下提供帮助?
请指教
我有一个数据库,其中包含一个值、一个以字节为单位的共享大小和一个共享名。这非常准确,但对我的最终用户没有用。因此我将值转换为 GB。通过使用简单的划分效果很好。
让我们假设我的数据库由两列组成。共享名和共享大小。
Sharename | Sharesize
Run Code Online (Sandbox Code Playgroud)
Share 1 |71685107549
Now I run this:
SELECT TOP (1000)
[Sharename]
,[ShareSize]
,(ShareSize / 1e+9) SharesizeGB
FROM [mydb].[dbo].[myshares]
Run Code Online (Sandbox Code Playgroud)
输出是:
ShareSize SharesizeGB
71685107549 71,685107549
Run Code Online (Sandbox Code Playgroud)
现在我需要用“点”替换“,”并将结果四舍五入到点后只有两位数字。
是否可以仅使用 select 语句?
对于我的示例,不需要除以 1024。
有没有办法检查是什么导致存储过程重新编译(索引重建、统计更新和参数嗅探除外 - 无需运行分析器跟踪或扩展事件),我们是否可以停止/取消/终止自动重新编译过程以减少 CPU 负载?
我已经设置了探查器来捕捉这些死锁事件:
勾选所有可用列(TextData、LoginName、SPID 等)
到目前为止,我能够捕捉到一些僵局。
然而,有时我只会得到一个死锁链列表(比如几秒钟内有 30 个事件),但是没有死锁,也没有捕获到死锁图。
这样的案例意味着什么?是否发生了死锁?或者就像“僵局即将来临”但可以解决?
我想在 SQL Agent 中运行一个后台作业,它将清理大量数据并运行多天。
基本上,一张表会删除4亿条记录。删除在循环中运行,因此总是删除大约 100.000 条记录的批次。
在删除过程中,此表中不会修改任何其他内容。
是否可以降低此类作业的 CPU 优先级,以免降低系统速度?
sql-server ×10
sql-server-2014 ×10
performance ×2
concat ×1
deadlock ×1
index ×1
maxdop ×1
parallelism ×1
select ×1