Microsoft SQL Server 2016 RC3 安装在我们的服务器(不是我自己)Windows Web Server 2008 R2 64 位上。还安装了 Visual Studio 2015 Community。当我去服务器上工作时,我无法连接到 MS SQL Server,所以我去查看该服务是否正在运行,服务管理器中唯一的 MS SQL 服务是:
SQL Server VSS Writer 提供通过 Windows VSS 基础架构备份/恢复 Microsoft SQL Server 的接口。
未安装任何核心服务。当我查看开始菜单时,所有 Microsoft SQL Server 2016 RC3 程序均已安装。当我运行已安装的 SQL 功能发现报告时,它显示已安装 MS SQL 2016,但没有实例。
所以我卸载了VS,并尝试卸载MS SQL Server。我卸载了主程序和所有组件,然后尝试卸载 Microsoft SQL Server 2016 RC3 安装程序,但弹出以下消息:
警告 26003。无法卸载 Microsoft SOL Server 2016 Ro3 安装支持文件,因为安装了以下产品: SOL Server 2016 Ro3 批解析器 SOL Server 2016 Ro3 SOL 诊断 SOL Server 2016 Ro3 XE vent …
在我的一台服务器中创建出版物的过程中,我不断收到以下错误消息
分发器尚未正确安装。无法启用数据库进行发布。
尽管我已经多次删除并重新创建了分配器。
--==============================================================
-- replication - create publication - complete
-- marcelo miorelli
-- 06-Oct-2015
--==============================================================
select @@servername
select @@version
select @@spid
select @@servicename
--==============================================================
-- step 00 -- configuring the distributor
-- if there is already a distributor AND it is not healthy,
-- you can have a look at the jobs related to this distributor and
-- MAYBE, if you need to get rid of it, run this step
-- generally you need to run this when …Run Code Online (Sandbox Code Playgroud) replication sql-server transactional-replication sql-server-2016
给定一个包含两列的表 - 一个整数 ID 和一个基于文本的字符串 - 我想从一个字符串值开始,该字符串值对用大括号括起来的任意数量的整数进行编码,并与任何其他有效文本字符混合。
例子:'{1} / {9} ... {12}'
通过一条SELECT语句,我想返回一个字符串,其中所有整数(及其大括号)都已替换为从我的表派生的值;具体来说,行的文本值的 ID 与源字符串中找到的数字相匹配......并且大括号之外的任何字符保持不变。
这是一个未能完成任务的示例:
select
replace('{13} {15}','{'+cast(id as varchar)+'}',isNull(display,''))
from testing;
Run Code Online (Sandbox Code Playgroud)
这将在表中每行返回 1 行testing。对于值 = 13 的行id,字符串的“{13}”部分已成功替换,但“{15}”部分未成功替换(第 15 行反之亦然)。
我想创建一个循环所有testing行并重复尝试替换的函数可以解决问题。尽管如此,直接的 SQL 语句比循环语句更好。
示例数据
+----+-------------------+
| id | display |
+----+-------------------+
| 1 | Apple |
| 2 | Banana |
| 3 | Celery |
| 4 | Dragonfruit |
| 5 | Eggplant |
| …Run Code Online (Sandbox Code Playgroud) 我发现数据库兼容性级别之间的一段代码的行为存在差异,并想知道其原因是什么。下面是一个简单的示例,它迭代计数表并ROWCOUNT在第 50 次迭代时更改选项:
设置:
/* Create tally table */
SELECT TOP 100
ROW_NUMBER() OVER (ORDER BY a.object_id) AS Number
INTO #Tally
FROM sys.objects a
CROSS JOIN sys.objects b;
/* Create Some databases with different compatibility levels */
CREATE DATABASE [100Compat] WITH COMPATIBILITY_LEVEL = 100
CREATE DATABASE [110Compat] WITH COMPATIBILITY_LEVEL = 110
CREATE DATABASE [120Compat] WITH COMPATIBILITY_LEVEL = 120
CREATE DATABASE [130Compat] WITH COMPATIBILITY_LEVEL = 130
Run Code Online (Sandbox Code Playgroud)
受影响的代码:
/* cursor through the tally table */
DECLARE MyCursor CURSOR
FOR
SELECT …Run Code Online (Sandbox Code Playgroud) 有没有办法通过扩展事件监控加密连接?我过去曾使用 sqlsni.TRACE 监视 TLS 1.0、1.1 和 1.2 握手,但找不到加密连接本身的相同内容。除非“encrypt=yes”未添加到连接字符串中,否则只会对握手进行加密,而不会加密其他内容。
我可以使用 sys.dm_exec_connections 来捕获它,但它不是实时的,我必须非常频繁地运行它(每分钟或更短时间)才能找到我正在寻找的内容。
有人在野外遇到过跟踪标志 8041吗?你能解释一下它的作用吗?
我继承了 SQL Server 2016 (13.0.5865.1),并且启用了一些跟踪标志。其中之一是8041。我在网上搜索过,但没有找到任何东西。
请记住,这些数据库是从 SQL Server 2005 => 2008 R2 => 2016 迁移而来的,早在我出现之前。所以它可能是 2005 年的东西。或者可能什么都没有,但我想在禁用它之前知道影响。
我一直在做一些测试,试图更好地理解 SQL Server 如何使用直方图来估计与等式谓词以及 < 或 > 谓词匹配的行数
鉴于我正在使用AdventureWorks2016 OLTP 数据库
如果能够理解SQL Server对=和>谓词的估计过程:
/* update stats with fullscan first */
UPDATE STATISTICS Production.TransactionHistory WITH FULLSCAN
Run Code Online (Sandbox Code Playgroud)
然后我可以看到该列的直方图TransactionHistory.Quantity
DBCC SHOW_STATISTICS (
'Production.TransactionHistory',
'Quantity')
Run Code Online (Sandbox Code Playgroud)
下面的屏幕截图是我运行测试的直方图的顶端:
以下查询将估计 6 行,因为谓词中的值是 RANGE_HI_KEY,因此对该存储桶使用 EQ_ROWS:
SELECT *
FROM Production.TransactionHistory
WHERE Quantity = 2863
Run Code Online (Sandbox Code Playgroud)
以下将估计 1.36 行,因为它不是 RANGE_HI_KEY,因此使用 AVG_RANGE_ROWS 作为它所属的存储桶:
SELECT *
FROM Production.TransactionHistory
WHERE Quantity = 2862
Run Code Online (Sandbox Code Playgroud)
以下“大于”查询将估计 130 行,这似乎是 RANGE_HI_KEY > 2863 的所有存储桶的 RANGE_ROWS 和 EQ_ROWS 之和
SELECT *
FROM Production.TransactionHistory
WHERE Quantity > 2863 …Run Code Online (Sandbox Code Playgroud) statistics database-internals sql-server-2016 cardinality-estimates
我们有一个 SQL Server 数据库,它使用索引视图来有效查询一些定期更改的数据(是的,我知道数据更改时维护索引会产生成本,但在我们的情况下这是非常值得的)。
我的理解是,对视图索引的更改必须像对任何其他表/索引的更改一样进行记录/备份。然而,在我看来,这种日志记录是多余的,因为在发生崩溃时 SQL 可以轻松地从视图定义重建视图索引。
有什么办法可以用 SQL Server 来实现这样的事情吗?
我正在尝试加载测试一个简单的插入存储过程:
CREATE TABLE _test(ID BIGINT)
GO
CREATE OR ALTER PROCEDURE dbo.test_sp
AS
BEGIN
SET NOCOUNT ON;
BEGIN
INSERT INTO _test
SELECT CAST(RAND() * 10000 AS BIGINT)
END
END
Run Code Online (Sandbox Code Playgroud)
当我使用 SQL Stress 工具执行此存储过程时,我得到的SQL Compilations/sec等于Batch Requests/sec。有趣的是,SQL 重新编译/秒为零。
两者都针对临时工作负载进行优化,并启用强制参数化。即使我将程序更改为简单的,图片也是一样的SELECT 1。
我正在使用 Microsoft SQL Server 2016 (SP3) (KB5003279)。
探查器跟踪显示该工具发送了一个简单的EXEC dbo.test_sp
sql-server stored-procedures sql-server-2016 performance-counters performance-testing
Microsoft 购买 REvolution 结果(除其他外)将 R 集成到 SQL Server 2016 中。
查看SQL Server 2016 支持的功能,我找不到 R-Support。有谁知道 R-Integration 属于什么功能或哪个版本集成了这个功能?
sql-server-2016 ×10
sql-server ×7
statistics ×2
backup ×1
cursors ×1
encryption ×1
index ×1
r-language ×1
replication ×1
t-sql ×1