标签: sql-server-2016

无法卸载 Microsoft SQL Server 2016 RC3

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 …

sql-server sql-server-2016

4
推荐指数
1
解决办法
2万
查看次数

分发器尚未正确安装。无法启用数据库进行发布

在我的一台服务器中创建出版物的过程中,我不断收到以下错误消息

分发器尚未正确安装。无法启用数据库进行发布。

尽管我已经多次删除并重新创建了分配器。

--==============================================================
-- 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

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

如何用多行数据替换字符串的多个部分?

给定一个包含两列的表 - 一个整数 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)

sql-server t-sql sql-server-2016 string-manipulation

4
推荐指数
1
解决办法
8046
查看次数

更改游标内的 SET 选项 - 基于兼容性级别的不同行为

我发现数据库兼容性级别之间的一段代码的行为存在差异,并想知道其原因是什么。下面是一个简单的示例,它迭代计数表并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)

sql-server-2008 cursors sql-server-2016 compatibility-level

4
推荐指数
1
解决办法
472
查看次数

使用扩展事件监控 SQL Server 加密

有没有办法通过扩展事件监控加密连接?我过去曾使用 sqlsni.TRACE 监视 TLS 1.0、1.1 和 1.2 握手,但找不到加密连接本身的相同内容。除非“encrypt=yes”未添加到连接字符串中,否则只会对握手进行加密,而不会加密其他内容。

我可以使用 sys.dm_exec_connections 来捕获它,但它不是实时的,我必须非常频繁地运行它(每分钟或更短时间)才能找到我正在寻找的内容。

encryption sql-server-2016

4
推荐指数
1
解决办法
1680
查看次数

SQL Server - 跟踪标志 8041 - 无文档

有人在野外遇到过跟踪标志 8041吗?你能解释一下它的作用吗?

我继承了 SQL Server 2016 (13.0.5865.1),并且启用了一些跟踪标志。其中之一是8041。我在网上搜索过,但没有找到任何东西。

请记住,这些数据库是从 SQL Server 2005 => 2008 R2 => 2016 迁移而来的,早在我出现之前。所以它可能是 2005 年的东西。或者可能什么都没有,但我想在禁用它之前知道影响。

sql-server sql-server-2016

4
推荐指数
1
解决办法
300
查看次数

SQL如何估计小于<谓词中的行数

我一直在做一些测试,试图更好地理解 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

4
推荐指数
1
解决办法
254
查看次数

有没有办法禁用视图索引的日志记录/备份?

我们有一个 SQL Server 数据库,它使用索引视图来有效查询一些定期更改的数据(是的,我知道数据更改时维护索引会产生成本,但在我们的情况下这是非常值得的)。

我的理解是,对视图索引的更改必须像对任何其他表/索引的更改一样进行记录/备份。然而,在我看来,这种日志记录是多余的,因为在发生崩溃时 SQL 可以轻松地从视图定义重建视图索引。

有什么办法可以用 SQL Server 来实现这样的事情吗?

index sql-server backup materialized-view sql-server-2016

4
推荐指数
1
解决办法
469
查看次数

对简单过程进行负载测试时编译/秒高

我正在尝试加载测试一个简单的插入存储过程:

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

4
推荐指数
1
解决办法
548
查看次数

哪个版本的 SQL Server 2016 支持 R

Microsoft 购买 REvolution 结果(除其他外)将 R 集成到 SQL Server 2016 中

查看SQL Server 2016 支持功能,我找不到 R-Support。有谁知道 R-Integration 属于什么功能或哪个版本集成了这个功能?

sql-server statistics sql-server-2016 r-language

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