标签: sql-server

如何从 LDF 文件中恢复数据?

我们使用的是 SQL 2005 Express Edition。我们要从 LDF 文件中读取数据以恢复一些已删除的记录。

我们尝试使用 ApexSQL 的试用版,这对我们有很大帮助。我们不是去寻找第三方软件,而是试图弄清楚如何自己读取日志文件。

我们如何从 LDF 文件中读取和恢复数据?

sql-server-2005 sql-server backup recovery restore

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

ALTER INDEX 和 DBCC DBREINDEX 有什么区别?

之间的唯一区别是

ALTER INDEX [index_name] on [object_name] REBUILD with (ONLINE=OFF, FILLFACTOR=90)
Run Code Online (Sandbox Code Playgroud)

DBCC DBREINDEX([dbname], 90) 
Run Code Online (Sandbox Code Playgroud)

只是 DBCC 命令将重新索引数据库中所有表的所有索引?

index sql-server index-tuning

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

添加 SPARSE 使表更大

我有一个通用日志表,大约 5m 行。
有一个存储事件类型的“强类型”字段,以及一组包含与事件相关的数据的“弱类型”列。也就是说,那些“松散类型”列的含义取决于事件的类型。

这些列定义为:

USER_CHAR1 nvarchar(150) null,
USER_CHAR2 nvarchar(150) null,
USER_CHAR3 nvarchar(150) null,
USER_CHAR4 nvarchar(150) null,
USER_CHAR5 nvarchar(150) null,

USER_INTEGER1 int null,
USER_INTEGER2 int null,
USER_INTEGER3 int null,
USER_INTEGER4 int null,
USER_INTEGER5 int null,

USER_FLAG1 bit null,
USER_FLAG2 bit null,
USER_FLAG3 bit null,
USER_FLAG4 bit null,
USER_FLAG5 bit null,

USER_FLOAT1 float null,
USER_FLOAT2 float null,
USER_FLOAT3 float null,
USER_FLOAT4 float null,
USER_FLOAT5 float null
Run Code Online (Sandbox Code Playgroud)

每种类型中的第 1 列和第 2 列都被大量使用,但从第 3 列开始,很少有事件类型会提供如此多的信息。因此,我决定将每种类型的第 3-5 列标记为SPARSE.

我首先进行了一些分析,发现实际上,每一列中至少 80% 的数据是null …

sql-server-2008 null sql-server storage sparse-column

9
推荐指数
1
解决办法
1085
查看次数

了解 SQL Server 锁定和并发性的资源?

正如最近一个关于矿井锁定和并发性的问题所证明的那样,很难。

您能否为中级到高级 SQL 专业人员推荐任何好的资源,以对这些资源进行彻底的研究,如果正确学习,可以更好地导航该领域的所有固有缺陷?

我正在考虑各种资源——教程、博客、手册页、PASS 会话或任何东西。

sql-server concurrency locking

9
推荐指数
3
解决办法
753
查看次数

聚集索引现在是必须的——为什么?

早些时候,对我来说,关于是否(总是)使用/避免聚集索引的辩论/讨论没有定论。

好吧,我知道它们有时会在适当的+特定目的和上下文中使用。

SQL Azure 数据库聚集索引要求

“SQL Azure 不支持没有聚簇索引的表。一个表必须有一个聚簇索引。如果一个表是在没有聚簇约束的情况下创建的,那么在允许对该表进行插入操作之前必须先创建一个聚簇索引”

不符合先前的结论、理由和解释。

我在前面的解释中遗漏了严格要求无任何例外地普遍存在的聚集索引的基本原理是什么?

index database-design sql-server azure-sql-database

9
推荐指数
2
解决办法
1251
查看次数

是否有任何有助于 SQL Server 维护任务的 PowerShell 脚本集合?

我一直在研究 PowerShell,并且我一直(慢慢地)将它融入到我的日常 DBA 任务中。

到目前为止,我已经看到了许多用于许多不同管理活动的断开连接的 PowerShell 脚本。

我想知道的是,是否有官方(或可识别的)PowerShell 脚本集合或存储库,人们通常会使用这些集合或存储库来获取用于常见 DBA 活动的 SQL Server PowerShell 脚本(例如 Ola Hallengren 的 T-SQL 脚本)。

sql-server management powershell scripting

9
推荐指数
1
解决办法
3934
查看次数

是否有更有用的方法来检测 SQL Profiler 中的锁获取/释放统计信息?

在我们的实时服务器上发生了一些死锁,我知道,这很糟糕。

无论如何,我试图弄清楚如何查看导致锁定(或持有时间过长)的 SQL 代码。

我已经添加了所有的Locks事件(获得、死锁、升级、释放、超时等),但我所看到的只是对获得/释放事件的轰炸,没有太多附加信息。

我很确定我知道导致死锁的“场景”,因为我们在插入/更新/删除后在表上有一个触发器,这做了很多额外的工作,有时高达 8 秒。

但是,在大部分额外工作中,数据从 TableA 中提取并插入到表变量中,大量工作在该表变量的内存中进行(大约 6 秒过去),然后最终插入到 TableB 中。

问题: 即使我只是将某些行选择到表变量中,这实际上会导致整个表的表锁定吗?

我已经添加了“触发跟踪”(插入表 x 值('嗨,我在这里')等),我基本上知道这个过程花费的时间最长(因此必须可能导致锁定?)

但我仍然不确定为什么会发生僵局。

问题: 我可以看到发生了 2 个锁升级,这是否意味着行锁已升级为表锁?

问题: 有人能给我一些关于如何进一步追踪这个僵局的提示吗?

编辑:

是死锁图

编辑2:

这是 [UpdatePostsCleanedUriUniqueUri] 的代码,这可能会导致表锁定?

ALTER PROC [dbo].[UpdatePostsCleanedUriUniqueUri]
(
    @PostIds IdentityType READONLY
)
AS
    SET NOCOUNT ON


    -- *************************************************************************
    -- ******************* Create the Cleaned Uri's,  first ********************
    -- *************************************************************************

    ---- "Remove" any existing cleaned uri's, per location
    UPDATE a
    SET …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server

9
推荐指数
1
解决办法
5067
查看次数

一张表占用多少内存?

有没有办法找出表在 SQL Server(2005 及更高版本)中占用了多少内存?

例如,假设我有一个包含 3000 万条记录的表。我想知道当前缓冲区缓存中有多少属于该表的页面,包括索引、数据和文本/图像页面

我找到了 Pinal Dave 的这个查询,但似乎这个查询只返回由索引分配的页面(无论是集群的还是非集群的)。

sql-server memory cache

9
推荐指数
1
解决办法
1712
查看次数

如何获取查询结果集中某列的总和(总计)

有没有一种方法可以通过单击列(类似于 Excel)来获取查询结果集中列的总和,这样我就不必将该列复制并粘贴到 Excel 中以查看总数列中所有值的总和?

我正在运行 SQL Server 2008。

sql-server-2008 sql-server sum

9
推荐指数
1
解决办法
14万
查看次数

有没有办法只授予用户访问数据库的所有非系统视图的权限?

在 SQL Server 中,我在特定数据库中有一个用户,我被要求仅授予他们访问该数据库的所有非系统视图的权限。我相信这可以通过编辑视图类型的安全对象并在每个视图上授予选择来完成,但是有很多很多视图。有没有更有效的方法来实现这一目标?

security sql-server

9
推荐指数
1
解决办法
7854
查看次数