小编Jam*_*son的帖子

SQL Server 备份事务错误

嗨,我正在尝试备份事务日志文件以在 SQL Server 中设置镜像

我执行

BACKUP LOG CUSTOMER TO DISK ='K:\JonDB\CUSTOMER.trn' WITH INIT
GO
Run Code Online (Sandbox Code Playgroud)

我收到

Processed 6587361 pages for database 'CUSTOMER', file 'CUSTOMER' on file 1.
Processed 0 pages for database 'CUSTOMER', file 'CUSTOMER_log' on file 1.
Processed 6 pages for database 'CUSTOMER', file 'CUSTOMER_log2' on file 1.
BACKUP DATABASE successfully processed 6587368 pages in 969.013 seconds (46.948 MB/sec).
Msg 3049, Level 16, State 1, Line 5
BACKUP detected corruption in the database log. Check the errorlog for more information. …
Run Code Online (Sandbox Code Playgroud)

sql-server backup mirroring corruption

6
推荐指数
1
解决办法
932
查看次数

SQL Server 2012 本地 SSD TempDB 慢

我有一个将本地 SSD 用于 tempDB 的生产部署。我在 RAID1 配置中有 2 个 SSD。我看到平均读取时间为 1-2 毫秒,但所有四个 tempdb 数据文件的平均写入时间都显示为 1377 毫秒。

每个 tempdb 数据文件为 2GB,具有 1GB 的增长设置(自 5 个月前部署以来没有增长)

tempdb 日志显示平均读取时间为 67 毫秒,平均写入时间为 215 毫秒。

SSD 是三星 840 专业版。

以下代码是我用来获取统计信息的代码

SELECT a.database_Id, 
a.file_id, 
db_name(a.database_id) AS dbname, 
b.name, 
db_file_type =  CASE 
                WHEN a.file_id = 2 THEN 'Log' 
                ELSE 'Data' 
                END, 
UPPER(SUBSTRING(b.physical_name, 1, 2)) AS disk_location, 
a.io_stall, 
a.io_stall_read_ms / Case When a.num_of_reads = 0 Then 1 Else a.num_of_reads end AvgRead,  
a.io_stall_write_ms / Case When a.num_of_writes = 0 …
Run Code Online (Sandbox Code Playgroud)

performance sql-server-2012 tempdb ssd

5
推荐指数
1
解决办法
1478
查看次数

使用比预期更多的日志空间的在线聚集索引重建

我有一张桌子 TableA

ID PK BIGINT
TrxID BIGINT
CardBalance INT
AccountBalance INT
Run Code Online (Sandbox Code Playgroud)

SP_SPACEUSED 'TableA' 输出:

name    rows       reserved     data         index_size   unused
TableA  904054184  55547120 KB  34661408 KB  19963544 KB  922168 KB
Run Code Online (Sandbox Code Playgroud)

所以数据大小约为33 GB。TrxID 上有一个聚集索引。有一个非聚集索引,大约有 19GB。

我的事务日志文件大小约为 250 GB。DBCC SQLPERF('logspace')显示 < 1% 的使用率。

当我运行时:

ALTER INDEX CIX_TableA_TrxID ON dbo.TableA REBUILD WITH (ONLINE = ON)
Run Code Online (Sandbox Code Playgroud)

事务日志在大约 20 分钟后达到 100%,然后继续增长。

是否有可靠的方法来计算此操作需要多少日志空间?

此外,这似乎在日志文件中使用了很多空间,这听起来对吗?

  • 此数据库位于具有 1 个其他异步副本的可用性组中(因此使用完整恢复模型)。
  • 这是一个测试数据库,因此没有任何其他事务与重新索引同时运行。

sql-server clustered-index maintenance sql-server-2012 transaction-log

5
推荐指数
1
解决办法
289
查看次数

db_datareader 用户可以阻止 ALTER TABLE 语句吗?

db_datareader 用户尝试更新并收到错误:

BEGIN TRAN

UPDATE [TestDB].[dbo].[Table_1]
  SET Col1 = 'Test';

   Msg 229, Level 14, State 5, Line 3
The UPDATE permission was denied on the object 'Table_1', database 'TestDB', schema 'dbo'.
Run Code Online (Sandbox Code Playgroud)

用户不关闭会话。

具有足够权限的用户之后尝试更改表并被阻止:

BEGIN TRAN

ALTER TABLE [TestDB].[dbo].[Table_1]
ADD Col2 INT;
Run Code Online (Sandbox Code Playgroud)

执行查询..

在此处输入图片说明 这是正常行为吗?

sql-server permissions transaction

5
推荐指数
1
解决办法
259
查看次数

使用内存 OLTP 进行数据压缩

将已经data compression启用减少存储在内存中的OLTP表使用的金额是多少?

如果是,我认为 CPU 工作负载会增加。

sql-server compression sql-server-2014 memory-optimized-tables

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