小编Nav*_*eet的帖子

缩小日志文件不会减小大小

我有一个数据库,它有一个350 MB 的数据文件(.mdf) 和一个4.9 GB 的日志文件(.ldf)。恢复模式设置为FULL.

当我尝试缩小日志文件时,它并没有缩小。

我知道缩小数据库不好,也不应该这样做。但我仍然试图缩小日志文件。

当我跑

DBCC SQLPerf(logspace) 
Run Code Online (Sandbox Code Playgroud)

我发现日志大小为4932 MB,使用的日志空间为98.76%

然后我尝试了这个命令

USE <databasename>;
DBCC loginfo;
Run Code Online (Sandbox Code Playgroud)

现在几乎所有的 VLF 都是“状态 2”,这意味着都在使用中。

我尝试进行日志备份,然后缩小日志文件。收缩并没有减小尺寸。

我将恢复模型更改为SIMPLE并再次尝试缩小,但这也无济于事。

我检查了未结交易

DBCC opentran (database);
Run Code Online (Sandbox Code Playgroud)

并发现现在没有交易打开。

是什么阻止我缩小日志文件?我该如何解决这个问题?

sql-server shrink dbcc database-size transaction-log

28
推荐指数
3
解决办法
14万
查看次数

根据其他 3 列组合的重复值,获取一列具有不同值的行

我想根据具有其他 3 列的唯一组合的重复行,仅获取列(列名 DEF)中具有不同值的行。

示例:在下面的示例中,前两行的前 3 列具有相同的值。但它们的列 DEF 具有不同的值。所以这两行都列在输出中。

但是第 2 行和第 4 行的前 3 列具有唯一组合,但它们在 DEF 列中具有相同的值。因此不会在输出中列出。

不会列出第 5 行和第 6 行,因为它们是具有不同值的单行。

+----------+-------+--------+--------+
| dept     | role1 |role2   |DEF     |
+----------+-------+--------+--------+
| a        | abc   | er     | 0      |
| a        | abc   | er     | 1      |
| b        | qwer  | ty     | 0      |
| b        | qwer  | ty     | 0      |
| c        | der   | ui     | 1      |
| d        | …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql distinct

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

使用 Windows 身份验证从另一台没有 Active Directory 的 PC 连接到 SQL Server

我在 PC 上安装了 SQL Server 2008 R2 Express。

我有一些其他 PC 连接到本地网络上的这台 PC。

目前,这些 PC 使用 SQL 身份验证连接到 SQL Server,但我希望它们使用 Windows 身份验证连接到 SQL Server。

我们没有 Active Directory 域。所有 PC 都是“WORKGROUP”工作组的一部分。

authentication sql-server sql-server-2008-r2 connectivity

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