我在 sys.objects 中看到 [Type] 列的奇怪(未记录)值。值为“ST”,如下图(注意,dbo.Record 是一个用户表)
有谁知道这个“ST”值是什么意思?(这是在 SQL Server 2014 开发版中)
我正在尝试获取按查询分组的特定列的所有行的产品。我发现的大多数例子都指向组合exp,sum和log
exp(sum(log([Column A])))
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是该列包含一些值的零,因此当零传递给log函数时我收到此错误:
发生无效的浮点运算。
我以为我可以通过使用case表达式来解决这个问题,但这并不像我认为的那样工作,因为它似乎评估了所有情况......
select
Name,
Product = case
when min([Value]) = 0 then 0
when min([Value]) <> 0 then exp(sum(log(I))) -- trying to get the product of all rows in this column
end
from ids
group by Name
Run Code Online (Sandbox Code Playgroud)
给定以下结果集:
Id Name Value
_________________________________
1 a 1
2 a 2
3 b 0
4 b 1
Run Code Online (Sandbox Code Playgroud)
我希望得到以下行:
Name Product
_____________
a 2
b 0
Run Code Online (Sandbox Code Playgroud)
所以总而言之......你如何乘以可以包含负数或零值的列中的行?
假设您有以下表结构:
LogId | ProductId | FromPositionId | ToPositionId | Date | Quantity
-----------------------------------------------------------------------------------
1 | 123 | 0 | 10002 | 2018-01-01 08:10:22 | 5
2 | 123 | 0 | 10003 | 2018-01-03 15:15:10 | 9
3 | 123 | 10002 | 10004 | 2018-01-07 21:08:56 | 3
4 | 123 | 10004 | 0 | 2018-02-09 10:03:23 | 1
Run Code Online (Sandbox Code Playgroud)
FromPositionId并且ToPositionId是股票头寸。某些位置 ID:s 具有特殊含义,例如0。事件 from 或 to0表示库存已创建或删除。From0可能是交货的库存,to0可能是发货的订单。
该表目前包含大约 550 …
我最近一直致力于了解存储在系统健康扩展事件事件文件中的数据或指标。
我们正在尝试使用此处提供的系统运行状况来实现性能指标的数据收集
有一些报告提供了从名为的系统运行状况事件收集的 CPU 利用率、其他进程利用率等指标
scheduler_monitor_system_health_ring_buffer_recorded
Run Code Online (Sandbox Code Playgroud)
对于一些繁忙的服务器,我无法理解为什么报告中列为 SQL CPU 利用率的字段“process_utilization”大部分时间都在 100 以上。在高峰时间,它在 120-160 之间变化,因此报告是始终显示 CPU 高于 100,即使当我从服务器活动监视器中检查时,情况并非如此。
我在 Github 中提出了这个问题,但似乎没有修复或回应。
因此,我的问题是
如何使用记录的系统运行状况环缓冲区获取服务器的 SQL CPU 利用率的准确数字?
报告还显示根据其报告计算的以下 2 个字段的计数器
100-System_idle-process_utilization 作为 OtherProcessUtil
100-system_idle 作为 SystemUtil
这些OtherProcessUtil和SystemUtil需要/有什么帮助?
其他工具(如 Idera 和 sentry [我测试过的])不会显示相同服务器的 CPU 使用率超过 100%。我对相同的负载进行了并排比较。
sql-server extended-events sql-server-2012 sql-server-2014 sql-server-2016
是否可以按表中的元素(如COLUMN LIKE='Value%')进行分组PIVOT?我有一个表 [DBT].[Status],其中包含各种状态(数据库、实例等),并且不想将所有 PROD 和 TEST 值作为单个值进行透视/查询,而是将它们分组。
例如代替具有用于状态列Prod,Prod ACC,Prod APP,...等。我将仅有一个包含的值列Name LIKE 'Prod%'和Name LIKE 'Test%'。
到目前为止我所拥有的:
CREATE TABLE [DBT].[Status](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_Status] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY],
CONSTRAINT [IX_Status] UNIQUE NONCLUSTERED
(
[Name] ASC
)WITH (PAD_INDEX …Run Code Online (Sandbox Code Playgroud) 当使用具有定义的列集的 SELECT 语句查询数据库时,大约 21 秒内就会收到结果。
\n, *如果定义的列集列表末尾有一个附加星号 ( ),则查询将在 2 秒内返回结果。
执行计划差异很大。
\n您可以通过 PasteThePlan 中的链接找到良好的实际查询执行计划和不良的实际查询执行计划。
\n\n SELECT -- DISTINCT -- 27.04.2020\n \'SchuelerKlasse\' AS EcoQuery,\n VX_PERSON.PER_MAN_ID, VX_PERSON.PER_ID, VX_PERSON.PER_NAME, VX_PERSON.PER_VORNAME, VX_PERSON.PER_LB_PER_ID, \n VX_PERSON.PER_GESCHLECHT, VX_PERSON.PER_GEBURTSDATUM, VX_PERSON.PER_TELP, VX_PERSON.PER_MAILP, VX_PERSON.PER_NATP, VX_PERSON.PER_VERSICHERTENNUMMER, VX_PERSON.PER_LAND,\n VX_ADRESSE.ADR_STRASSE, VX_ADRESSE.ADR_PLZ, VX_ADRESSE.ADR_ORT,\n VX_KLASSE.KL_CODE, VX_KLASSE.KL_BEZEICHNUNG,\n VX_KLASSEABSCHNITTSCHUELER.KAS_ANMELDE_STATUS, \n VX_KLASSEABSCHNITTSCHUELER.KAS_ANMELDETYP, VX_KLASSEABSCHNITTSCHUELER.KAS_ABSCHNITTSNR,\n VX_KLASSE_ZEITRAUM.KLZ_IS_ABSCHLUSSKLASSE, VX_KLASSE_ZEITRAUM.KLZ_ZR_NR,\n VX_ZEITRAUM.ZR_BEGINN, VX_ZEITRAUM.ZR_ENDE\n ,\'\' AS FA_CODE\n ,\'\' AS FA_BEZ_STP, \'\' AS FA_BEZ_STP_LANG\n , \'\' AS EcoOrig_FA_CODE, …Run Code Online (Sandbox Code Playgroud) 我正在处理SQL Server 升级到 2014 后无法删除数据库快照的问题。快照已失效但无法删除。
现在,虽然 Connect 项目中有一个令人失望的评论,但我认为这最终会得到解决。但是,我需要尽快处理这个问题。
有没有办法删除由于此错误而无法删除的数据库快照?我担心我已经用尽了所有记录在案的方法来做到这一点。可能需要对系统表进行未记录的修改。有没有办法强制删除数据库(快照)?
我最近在我拥有的工作站上安装了 SQL Server 2014 Express,并正在尝试部署到 SQL Azure。我之前在使用 SQL Server 2012 Express 的以前的工作站上通过执行以下操作完成了此操作:
右键单击数据库 > 任务 > “将数据库部署到 SQL Azure”
在 SQL Server 2014 上,该选项完全丢失,取而代之的是一个新选项:“将数据库部署到 Windows Azure VM”
我不明白为什么缺少部署到 SQL Azure 的选项。现在是否需要为 SQL Server 2014 单独安装一些东西?从我在网上阅读的内容来看,2014 版应该有这两个选项。Microsoft 是否为 SQL Server 2014 Express 删除了此选项?
下面的代码执行以下操作:
尝试将 temp_table 切换回 play_table 分区 2 并失败
消息 4982,级别 16,状态 1,第 64 行 ALTER TABLE SWITCH 语句失败。检查源表“play_partition.dbo.temp_table”的约束允许目标表“play_partition.dbo.play_table”上的分区 2 定义的范围不允许的值。
为什么会失败?
我使用的是 SQL Server 2014(企业版试用版)。
问候,
科林戴利
http://www.colindaley.com/translator
/* Playing with partitioned tables */
USE master;
GO
DROP DATABASE play_partition;
GO
CREATE DATABASE play_partition
ON PRIMARY(
NAME = play_partition
, FILENAME …Run Code Online (Sandbox Code Playgroud) sql-server ×10
sql-server-2014 ×10
case ×1
datatypes ×1
index-tuning ×1
maintenance ×1
metadata ×1
optimization ×1
partitioning ×1
pivot ×1