标签: sql-server-2016

数据仓库服务器。您如何计算 RAM/CPU 规格?

我正在尝试为我们计划的数据仓库升级编写数据仓库服务器的规范。

当我们在 VMWare 主机上运行虚拟服务器时,我们能够根据需要添加或删除资源。过去,我们根据需要逐步添加 RAM 和 CPU。随着我们需求的增加,我们已经游说获得更多资源。(主要是磁盘和 RAM)。

我们要求更多。他们给我们尽可能少。

然而,最近每当我们谈论资源时,我们都会因为没有首先正确指定机器而受到批评,现在我被告知开发主机已用完,没有更多可用的 RAM。

我们是一个小型的地方政府组织,拥有约 50 名 DW 的常规用户。在正常的日常使用中,它运行良好。我们获得了良好的 mdx 查询性能,并且我们的报告和仪表板速度很快。用户很高兴。

然而,我们的 ETL 过程整夜运行,当同时处理数据集市时,我们开始看到内存压力的迹象。昨晚 SSIS 因“内存不足错误”的警告而失败。

我们现有的 DW 服务器是 Win 2008 R2,带有 4 个 CPU 和 16Gb 的 RAM,运行 SQL 2012 Std。我将最大服务器内存设置为 12GB,为操作系统和服务等留出 4GB。我们现有的 DW 有 3 个数据集市/OLAP 多维数据集,我们正在开发另外 2 个。

+----------+----------+---------------+-----------+---------------+
| Datamart | Files GB |  Fact (Rows)  | Fact (Mb) | ETL & Process |
| OLAP cube|          |               |           | Time (hours)  |
+----------+----------+---------------+-----------+---------------+
| PBI      | …
Run Code Online (Sandbox Code Playgroud)

data-warehouse sql-server windows-server sql-server-2016

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

为嵌套循环设置统计 I/O

考虑以下查询:

CREATE PROC dbo.GetPage  @orderid  AS INT    = 0, -- anchor sort key
            @pagesize AS BIGINT = 25
 AS
SELECT
TOP (@pagesize) orderid, orderdate, custid, empid
 FROM dbo.Orders WHERE orderid > @orderid ORDER BY orderid;

exec GetPage 25,25
Run Code Online (Sandbox Code Playgroud)

上述查询的 SET STATISTICS IO 返回:

(25 row(s) affected)
Table 'Orders'. Scan count 1, logical reads 87, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Run Code Online (Sandbox Code Playgroud)

Itzik Ben-Gan 在他的书中对上述内容的解释是这样的:

执行查询计划所涉及的 I/O 成本由以下组成:

  • 查找索引的叶子:3 次读取(索引具有三个级别)。 …

sql-server execution-plan database-internals sql-server-2016

8
推荐指数
1
解决办法
950
查看次数

升级到 2016 后,SQL Server 代理无法连接到实例

在装有 SQL Server 2014 Enterprise 的群集 Windows 2012 R2 服务器上。

刚刚将一个实例从 2014 SP1 CU4 升级到 2016 RTM,现在在尝试启动 SQL Server 代理时出现此错误。

SQL SERVER 代理日志

2016-06-06 11:53:58 - ? [100] Microsoft SQLServerAgent version 13.0.1601.5 (X64 unicode retail build) : Process ID 10884
2016-06-06 11:53:58 - ? [495] The SQL Server Agent startup service account is DOMAIN\USERNAME.
2016-06-06 11:54:28 - ! [150] SQL Server does not accept the connection (error: 65535). Waiting for Sql Server to allow connections. Operation attempted was: Verify Connection …
Run Code Online (Sandbox Code Playgroud)

sql-server upgrade sql-server-2016

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

AlwaysON 从 2014 年迁移到 2016 年

我在 2014 年有 20 个听众,大约有 500 个 DBS,

以最少的停机时间和精力来迁移这些的最佳方法是什么

我的想法是:停止访问备份 dbs 开始恢复 dbs 在恢复运行时:在 2014 年删除 AOG 在 2016 年创建它完成

这看起来很简单,但是对于 TB 数据,这需要一些时间。

找到了这个 -> 从 2014 年到 2016 年升级 AlwaysOn AG 的推荐方法 但它也没有解释

希望有人能帮忙

sql-server migration availability-groups sql-server-2014 sql-server-2016

8
推荐指数
1
解决办法
1360
查看次数

SSRS 2016 报告门户 - 下拉列表中没有可用的 KPI 选项

有没有办法在 Reporting Services 2016 Web 门户中启用 KPI 选择?

我急切地想尝试这个功能,然后我浪费了 2 个小时寻找它,仍然没有找到它。在大多数示例中,它似乎位于“新建”下拉菜单下。

在此处输入图片说明

我在主页门户页面上,我确实创建了一个数据集和数据源。仍然没有 KPI 选项。我已经远程访问主机服务器,用户在 SSRS 中拥有系统管理员和系统用户权限。

sql-server ssrs sql-server-2016 ssrs-2016

8
推荐指数
1
解决办法
3385
查看次数

SQL Server 2016 标准版是否支持表分区?

我想将我的 SQL Server 2008 企业版升级到 SQL Server 2016 标准版;然而,一个数据库在多个文件组上使用表分区(用于大型日志表,每天是一个分区)

我在SQL Server 2016 的版本和支持的功能中的“RDBMS 可扩展性和性能”一节中看到,它说标准版支持表和索引分区,但支持分区表并行

我不确定我是否完全理解这样做的后果。

就我而言,这究竟意味着什么,它将如何影响数据库的性能?

sql-server partitioning sql-server-2016

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

“AlwaysOn”不总是“Always On”吗?

我们创建了一个 Windows 故障转移群集,然后添加了两个 SQL Server 实例作为 SQL Server 故障转移群集的节点。

我们在 SQL 配置管理器中将服务器设置为使用“AlwaysOn 可用性组”。

为了测试故障转移,我加载并运行了一个长查询,然后通过使用故障转移群集管理器停止活动节点上的群集服务来关闭活动节点。

查询在没有连接的情况下中断,在节点耗尽和新节点接管之前,服务器在大约 20 秒内显示为不可用。

我做错了吗?我应该如何配置它以便几乎没有连接丢失?

AlwaysOn 不是一直开启吗?

sql-server failover availability-groups sql-server-2016

8
推荐指数
1
解决办法
1877
查看次数

SQL Server:提供数据库备份时动态数据屏蔽是否安全?

我有一个 SQL Server 2016 SP1,其中包含我准备与合作伙伴(开发人员)共享的数据,但有几列除外,例如:

email varchar(64) MASKED WITH (FUNCTION = 'email()') NULL
Run Code Online (Sandbox Code Playgroud)

我向合作伙伴提供了以特定用户身份登录数据库测试副本的凭据,而无需取消屏蔽权限。我知道这是相当安全的。现在,我们正在考虑与我们的合作伙伴共享数据库备份,以便他们可以在自己的服务器和环境中重新加载。

我可能需要包含用户,以便合作伙伴无法创建新用户或将他们连接到现有登录名(对此不确定)。

CREATE USER user_name WITH PASSWORD = 'strong_password';
Run Code Online (Sandbox Code Playgroud)

有没有办法可以共享数据库备份,并且仍然相信被屏蔽的列是安全的,或者我是否必须物理删除数据?

sql-server backup sql-server-2016 dynamic-data-masking

8
推荐指数
2
解决办法
810
查看次数

如何检查表的 SYSTEM_VERSIONING 是否打开?

我知道 SQL Server 2016 让我们使用 SYSTEM_VERSIONING 像:

CREATE TABLE EmpSalary  
(    
     EmpID int NOT NULL PRIMARY KEY CLUSTERED  
   , SalaryAmt decimal (10,2) NULL  
   , SalaryBeginDT datetime2 GENERATED ALWAYS AS ROW START NOT NULL  
   , SalaryEndDT datetime2 GENERATED ALWAYS AS ROW END NOT NULL  
   , PERIOD FOR SYSTEM_TIME (SalaryBeginDT, SalaryEndDT)     
)    
WITH (SYSTEM_VERSIONING = ON);
Run Code Online (Sandbox Code Playgroud)

同样要停用此功能,只需更改表:

ALTER TABLE EmpSalary SET (SYSTEM_VERSIONING = OFF );
Run Code Online (Sandbox Code Playgroud)

我的问题是如何检查表的 SYSTEM_VERSIONING 是否打开,然后更改表?

sql-server ddl data-versioning sql-server-2016

8
推荐指数
2
解决办法
3853
查看次数

在 SQL Server 2016 中最大化可移植性的最佳实践

在开发解决方案的原型时,通常还没有确定技术,并且可能与最终产品中使用的技术不同。

在这种情况下,我倾向于使用 Microsoft SQL Server 编写尽可能标准的查询,以简化最终迁移到另一台服务器的过程。

是否有一种方法或一些已知的做法可以直接在 SQL Server 中或通过SQL Server Management Studio (SSMS)强制使用标准 SQL over T-SQL 方言?

sql-server migration sql-standard sql-server-2016

8
推荐指数
3
解决办法
1161
查看次数