我在桌面上使用 ubuntu 18.04.2 并从 docker 运行 sql server 2017。
我想使用sql server management studio来管理服务器。
到目前为止,我有一个带有 ssms 17.9.1 的 Windows 7 企业版,并且运行正常
只为一个应用程序启动整个 Windows 企业真的很烦人,所以我想知道是否有更好的方法来运行它。更轻或更好的集成替代品。
该版本的 ssms 似乎不适用于 wine。
假设我在多个数据库中复制了一个存储过程,并进行了一些修改。而且我想引用存储过程所在的数据库,即使它是在另一个数据库中执行的。
有没有办法检索完整路径 (..) 或以其他方式检索存储过程所在的数据库,而不是当前数据库?
当您仅重新启动 SQL 服务本身时,服务器缓存是否会被擦除(类似于重新启动 SQL 实例/机器时)?
是否NEWID()函数生成UUID version 4?
NEWSEQUENTIALID()函数的情况如何?
数据是否总是为我们提供 UUID 标准和版本?也许它应该在应用程序端生成?
我认为这是一个权限问题,但我无法找到它。
我在一台服务器(SQL Server 2016)上有一组 CLR,它们可以正常工作。所有这些都被标记为 UNSAFE,并且它们执行各种类型的文件 I/O(读取、写入、复制、移动、重命名等)。我可以通过 SSMS 或同样轻松地从工作中运行它们。
我需要将它们安装在另一台服务器(也是 SQL Server 2016)上。使用原始的 Visual Studio 项目,我已将它们部署到新服务器。它们出现在 SSMS 中。那部分看起来不错。
当我从 SSMS 尝试运行一个时,我收到以下错误:“拒绝访问路径‘我传入的任何路径’。”
我在 Windows 登录下登录到 SSMS。我有数据库的权限,我是 dbo。我是服务器管理员。我在文件系统中有权限。
我还能缺少什么?
我正在尝试生成 SQL 查询以从以下 SQL XML 中获取“DATE”值:
我试过这样的事情,但我不认为我理解这些概念。
select
xConfig.value('(/SearchjobConfig/QueryString/SearchCriteria/ExpressionSet/SimpleAttributeExpression) [1]','nvarchar(max)')
from
Job
Run Code Online (Sandbox Code Playgroud)
这是作为文本的 XML:
select
xConfig.value('(/SearchjobConfig/QueryString/SearchCriteria/ExpressionSet/SimpleAttributeExpression) [1]','nvarchar(max)')
from
Job
Run Code Online (Sandbox Code Playgroud)
预期的输出将是日期:
<SearchJobConfig>
<QueryID>1072</QueryID>
<QueryString>
<SearchCriteria name="Search query" >
<ExpressionSet logicalOperator="AND">
<SimpleAttributeExpression displayName="Date" npmPropertyId="4" searchOperation="GREATER_EQUAL" dataType="string" caseSensitive="false">2019-06-01T04:00:00</SimpleAttributeExpression>
<SimpleAttributeExpression displayName="Date" npmPropertyId="4" searchOperation="LESS_EQUAL" dataType="string" caseSensitive="false">2019-06-13T03:59:59</SimpleAttributeExpression>
<SimpleAttributeExpression displayName="Class" npmPropertyId="1056" searchOperation="EQUALS" dataType="int32" caseSensitive="false">65</SimpleAttributeExpression>
</ExpressionSet>
</SearchCriteria>
</QueryString>
</SearchJobConfig>
Run Code Online (Sandbox Code Playgroud)
以及在同一行上获得结果需要什么..示例:
2019-06-01T04:00:00
2019-06-13T03:59:59
Run Code Online (Sandbox Code Playgroud)
我正在使用 SQL Server 2012 企业版。
我最近将 RedHat Enterprise Linux 7.6 上的 SQL Server 2017 Developer Edition 升级到 SQL Server 2019 CTP 3.0。
mssql-server 服务将不再启动。/var/opt/mssql/log/errorlog 显示以下内容:
2019-06-12 09:36:31.98 Server Microsoft SQL Server 2019 (CTP3.0) - 15.0.1600.8 (X64)
May 17 2019 00:56:19
版权所有 (C) 2019 Microsoft Corporation
Developer Edition(64 位) Linux (Red Hat Enterprise Linux)
2019-06-12 09:36:32.04 服务器 UTC 调整:-5:00
2019-06-12 09:36:32.05 服务器(c)微软公司。
2019-06-12 09:36:32.07 服务器 版权所有。
2019-06-12 09:36:32.08 Server 服务器进程 ID 为
32。2019-06-12 09:36:32.09 服务器在文件“/var/opt/mssql/log/errorlog”中记录 SQL Server 消息。
2019-06-12 09:36:32.10 服务器注册表启动参数:
-d /var/opt/mssql/data/master.mdf
-l /var/opt/mssql/data/mastlog.ldf
-e …
用于预订事物的事务性数据库...
我们的供应商被要求用@tablevariables 替换#temptables(因为编译锁很重),但他们用一个实际的表来替换,该表将SPID 添加为一列,以确保存储过程只作用于适用的行。
您认为这种操作方法有什么风险吗?在所有事务都被隔离在他们自己的事务中之前......我担心我们最终可能会锁定这个表,但他们的意见是 SQL 使用行级锁定,这不会创建更多的锁。
SQL Server 版本:2016 企业版 - 13.0.5216.0
CREATE TABLE dbo.qryTransactions (
ID int IDENTITY (0,1) NOT NULL CONSTRAINT pk_qryTransactions PRIMARY KEY CLUSTERED,
spid int NOT NULL,
OrderID int,
ItemID int,
TimeTransactionStart datetime,
TimeTransactionEnd datetime,
...other fields
)
CREATE INDEX idx_qryTransactions_spidID ON qryTransactions (spid, ID) INCLUDE (ItemID, OrderID, TimeTransactionStart, TimeTransactionEnd)
Run Code Online (Sandbox Code Playgroud) sql-server stored-procedures sql-server-2016 enterprise-edition table-variable
我们一直在监控一些SQLServer: Memory Manager指标,并注意到在DBCC CheckDB工作后,指标
Database Cache Memory (KB)
Run Code Online (Sandbox Code Playgroud)
大幅下降。准确地说,它从 140 GB 缓存数据库内存下降到 60 GB。之后,在一周内再次缓慢上升。(“ Free Memory KB”的数量,紧随其后从 20 GB 增加到 100 GB CheckDB)
DBCC CheckDB 每周日运行,因此数据库缓存内存必须每周再次增加
What is the behavior of this ? Why CheckDB pushes database pages out of memory ?
Run Code Online (Sandbox Code Playgroud)
第二个问题是为什么“ buffer cache hit ratio”DBCC CheckDB完成后没有变化?
平均为 99.99%,在DBCC CheckDB工作后它下降到 ~98.00%,并很快恢复到 99%,而我预计“ buffer cache hit ratio”会显着下降,因为数据库数据必须再次从存储读取到 RAM?
sql-server dbcc-checkdb buffer-pool sql-server-2017 performance-monitor
我正在设置一个实验,其中我在服务器上只有证书的公钥部分。证书是在另一台服务器上生成的,我没有恢复私钥。
当我尝试使用该证书使用加密备份数据库时,出现此错误:
Msg 15556, Level 16, State 1, Line 15
Cannot decrypt or encrypt using the specified certificate, either because it has no private key or because the password provided for the private key is incorrect.
Msg 3013, Level 16, State 1, Line 15
BACKUP DATABASE is terminating abnormally.
Run Code Online (Sandbox Code Playgroud)
那是 SQL Server 清楚地告诉我它需要私钥进行加密。
但这是为什么呢?
我的理解是 BACKUP 生成对称密钥,使用证书中的公钥保护对称密钥,并将其与备份内容一起存储。然后使用对称密钥来加密实际的备份内容,因为对称加密通常(总是?)比非对称加密快。
为了恢复备份,我需要与加密中使用的公钥相对应的私钥。这是预期的。
我只是不明白为什么在备份操作期间需要私钥。没有在文档或其他任何地方找到答案。有人可以解释一下或指出一些关于为什么会这样的文件吗?
sql-server ×10
linux ×2
backup ×1
buffer-pool ×1
cache ×1
dbcc-checkdb ×1
encryption ×1
files ×1
permissions ×1
plan-cache ×1
query ×1
sql-clr ×1
ssms ×1
statistics ×1
xml ×1