我有一个这样的表:
CREATE TABLE
dbo.DiscountBarcodeList
(
ID int NOT NULL IDENTITY
CONSTRAINT PK_DiscountBarcodeList
PRIMARY KEY CLUSTERED
, Discount int NOT NULL
CONSTRAINT FK_DiscountBarcodeList_Discount
FOREIGN KEY REFERENCES dbo.Discount (ID)
, CodeNumber int NOT NULL
, AssignedEntity int NULL
CONSTRAINT FK_DiscountBarcodeList_AssignedEntity
FOREIGN KEY REFERENCES dbo.Entity (ID)
ON DELETE SET NULL
, BarcodeID AS
CONVERT(
char(10)
, CAST(Discount AS binary(2)) + CAST(CodeNumber AS binary(3))
, 2)
, CONSTRAINT UQ_DiscountBarcodeList_DiscountCodeNumber
UNIQUE NONCLUSTERED
(
Discount ASC
, CodeNumber ASC
)
);
Run Code Online (Sandbox Code Playgroud)
该表将保存预先CodeNumber分配给 s 的 …
index sql-server sql-server-2014 unique-constraint computed-column
将已经data compression启用减少存储在内存中的OLTP表使用的金额是多少?
如果是,我认为 CPU 工作负载会增加。
sql-server compression sql-server-2014 memory-optimized-tables
在我们的办公室,我们使用安装在 Windows Server 2012 中的 SQL Server 2008R2 Express。SQL Server 数据库同时被网络中的 60 多个用户访问。最近几天,我们遇到了 SQL Server 和我们使用 SQL Server 的程序的性能下降。
从过去几年开始,我们使用 Windows Server 2003 和 SQL Server 2008 R2 Express。几个月后,我们将服务器更改为 Windows Server 2012。
我可以使用性能计数器等分析 SQL Server 的性能。但在此之前我想知道以下细节
SQL Server 2008 R2 Express 是否有任何限制,例如它只使用一个 CPU 核心?这可能是性能缓慢的原因吗?
在 Windows Server 2012 上使用旧版本 (SQL Server 2008 R2 Express) 时是否存在兼容性问题?
是否需要升级到 SQL Server 2014 Express?我会得到什么好处吗?
performance sql-server sql-server-express windows-server sql-server-2014
有没有办法为列存储和列存储列存储归档压缩节省压缩?
为了检查这些压缩保存,我必须删除所有聚集和非聚集索引,然后创建一个聚集列存储索引 - 大多数时候这是一个耗时的操作,我想知道是否有其他方法可以做到这一点。
我正在非常,非常错误的估计聚集索引寻求此查询的步骤(估计行是8637530;实际为74723):
Declare @StartDate as date = '10/1/2014';
Declare @EndDate as date = '10/2/2014';
select Sum(Quantity)
from Daily_GC_Items
where SalesDate between @StartDate and @EndDate;
Run Code Online (Sandbox Code Playgroud)
如果我对这样的日期使用字符串文字,则估计值几乎是完美的(估计行数为 75,337.4;实际为 74,723):
select Sum(Quantity)
from Daily_GC_Items
where SalesDate between '10/1/2014' and '10/2/2014'
Run Code Online (Sandbox Code Playgroud)
表定义:
[SalesDate] [date] NOT NULL,
[Store] [varchar](10) NOT NULL,
[GuestCheckNumber] [smallint] NOT NULL,
[ItemSequence] [smallint] NOT NULL,
[Quantity] [smallint] NOT NULL,
(Several more columns)
Run Code Online (Sandbox Code Playgroud)
首要的关键:
[SalesDate] ASC,
[Store] ASC,
[GuestCheckNumber] ASC,
[ItemSequence] ASC
Run Code Online (Sandbox Code Playgroud)
这种行为的可能原因是什么?
performance sql-server execution-plan sql-server-2014 cardinality-estimates query-performance
我想测试 tempdb 溢出警告,所以我在 SQL Server 2014 上运行以下脚本:
USE tempdb
IF OBJECT_ID('tempdb..tblTest') IS NOT NULL DROP TABLE tblTest
CREATE TABLE tblTest
(
c1 INT PRIMARY KEY CLUSTERED,
c2 INT ,
c3 CHAR (1000)
);
GO
SET NOCOUNT ON;
BEGIN TRANSACTION;
DECLARE @i AS INT;
SET @i = 1;
WHILE @i <= 10000
BEGIN
INSERT INTO tblTest (c1, c2, c3)
VALUES (@i, @i, 'a');
SET @i = @i + 1;
END
COMMIT TRANSACTION;
GO
UPDATE STATISTICS dbo.tblTest
GO
SET STATISTICS XML ON; …Run Code Online (Sandbox Code Playgroud) sql-server optimization sorting sql-server-2014 query-performance
我有两个链接的服务器,并且想要创建一个存储过程,该过程SELECT仅从第一台服务器的一个表中获取INSERT数据,并从第二个服务器中获取另一个表中的数据。
程序代码如下所示:
BEGIN TRAN
INSERT INTO [RI].[TEST_DB].[TEST_TABLE] (...)
SELECT ...
FROM [TABLE]
TRUNCATE [TABLE]
COMMIT TRAN
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
链接服务器“RI”的 OLE DB 访问接口“SQLNCLI11”返回消息“无法在此会话上启动更多事务。”。
消息 7395,级别 16,状态 2,过程 usp_test,第 46 行
无法为链接服务器“RI”的 OLE DB 提供程序“SQLNCLI11”启动嵌套事务。
需要嵌套事务,因为 XACT_ABORT 选项设置为 OFF。
我计划在 64 位 HP 工作站上安装 SQL Server 2014 Enterprise Edition。
我阅读了以下软件和硬件要求:
根据该页面,企业版似乎不支持 Windows 7。参考正确吗?
我们有一个所有者为“dbowner”的数据库。我们的安装过程删除用户“dbowner”的登录名并重新创建它。
在任何其他版本的 SQL Server 上,以下 SQL 查询成功:
USE [master]
DROP LOGIN 'dbowner'
Run Code Online (Sandbox Code Playgroud)
在 SQL Server 2014 上,相同的查询返回以下错误:
登录 'dbowner' 拥有一个或多个数据库。在删除登录之前更改数据库的所有者。
谁能解释为什么这在 SQL Server 2014 上会有所不同?删除登录适用于所有其他版本的 SQL Server(2005、2008 和 2012)。
是否有任何设置可以强制在 SQL Server 2014 上使用相同的设置?
更新:
我可以用一个使用 Windows 用户的例子来复制这个。有任何想法吗?
CREATE LOGIN [comp\winuser] FROM WINDOWS;
GO
CREATE DATABASE mydb;
GO
ALTER AUTHORIZATION ON DATABASE::mydb TO [comp\winuser];
GO
DROP LOGIN [comp\winuser];
GO
Run Code Online (Sandbox Code Playgroud)
更新 2:
谢谢您的意见。我同意删除所有者的登录名是不可取的(但除 SQL Server 2014 外,其他地方的 Windows 用户都可以使用)。然而,我们的安装脚本目前依赖于它,极其复杂的数据库安装过程是 15 年前某个人制作的(他不再与我们合作了)。如果可能(只要它有效),我们希望避免更改该领域。
在我看来,我们有三个选择:
我在我的盒子上运行 sql standard 2008 r2。并且它工作得很好。我刚刚在我的机器上安装了 sql server 2014 作为第二个实例。
该服务运行良好,但是当我尝试使用 sa 密码登录它时,我收到有关登录失败的错误消息。
假设我可能在安装时弄乱了密码,我卸载并重新安装。同样的问题。
奇怪的是,当我尝试使用 Windows 身份验证登录时,它也失败了


但是我可以使用 Windows 身份验证登录到我的 2008 R2 实例,没问题
有些东西困扰着我,它不一定是登录,但可能是服务的登录方式,但它的登录方式与 2008r2 服务完全相同。

完整的错误信息在这里
Server Name: CRAIG-PC\MSSQLSERVER2014
Error Number: 18456
Severity: 14
State: 1
Line Number: 65536
Run Code Online (Sandbox Code Playgroud)
提前致谢
全屏抓取服务
浏览器从此路径“C:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe”运行
sql-server ×10
sql-server-2014 ×10
compression ×2
performance ×2
columnstore ×1
index ×1
installation ×1
logins ×1
optimization ×1
security ×1
sorting ×1
users ×1