标签: sql-server-2005

如何在没有时间部分的情况下获取当前日期

在 SQL Server 2005 中,如何获取没有时间部分的当前日期?我一直在使用,GETDATE()但希望它的时间为 00:00:00.0

sql-server-2005 sql-server

89
推荐指数
2
解决办法
28万
查看次数

SQL Server 无法删除数据库 <dbname>,因为它当前正在使用...但没有显示会话

当我尝试删除数据库时,出现错误“无法删除数据库“dbname”,因为它当前正在使用中”。但是,当我运行时sp_who2,肯定没有连接到该数据库的会话。我还将数据库设置为single_user mode with rollback immediate.

为什么会这样?

sql-server-2005 sql-server

88
推荐指数
5
解决办法
22万
查看次数

在sql-server中开启读提交快照有什么风险?

我在这里读到每行将存储一些额外的数据,因此我们可能会看到性能下降,但还有哪些其他风险?

例如。这会影响数据库的恢复吗?我们还需要做些什么来利用这一点吗?

我计划执行这些命令:

ALTER DATABASE DatabaseName SET READ_COMMITTED_SNAPSHOT ON
ALTER DATABASE DatabaseName SET ALLOW_SNAPSHOT_ISOLATION ON
Run Code Online (Sandbox Code Playgroud)

我相信这会让我们更接近 oracle,如果一个事务正在更新其他事务仍然可以读取旧数据。这样对吗?

我正在研究这个,因为我厌倦了 SQL Server 2005 中的锁定问题。我希望这可以减少我们的用户看到的偶尔的死锁,帮助我们的应用程序的整体性能并鼓励我们的开发人员在没有害怕。

sql-server-2005 sql-server transaction

78
推荐指数
5
解决办法
8万
查看次数

如何确定哪个查询正在填满 tempdb 事务日志?

我想知道如何识别实际填充 TEMPDB 数据库事务日志的确切查询或存储过程。

sql-server-2005 sql-server-2008 sql-server tempdb transaction-log

75
推荐指数
3
解决办法
19万
查看次数

索引搜索与索引扫描

查看运行缓慢的查询的执行计划,我注意到有些节点是索引查找,有些是索引扫描。

索引查找和索引扫描有什么区别?

哪个表现更好?

SQL 如何选择一个?

我意识到这是 3 个问题,但我认为回答第一个会解释其他问题。

performance index sql-server-2005 sql-server execution-plan

66
推荐指数
4
解决办法
6万
查看次数

添加通配符(或顶部)时 SQL Server 查询速度大幅减慢

我有一个由 2000 万只动物组成的动物园,我在 SQL Server 2005 数据库中对其进行跟踪。其中约 1% 是黑色,约 1% 是天鹅。我想获得所有黑天鹅的详细信息,因此不想淹没我所做的结果页面:

select top 10 * 
from animal 
where colour like 'black'  
and species like 'swan'
Run Code Online (Sandbox Code Playgroud)

(是的,不明智的是,这些字段是自由文本,但它们都已编入索引)。事实证明我们没有这样的动物,因为查询在大约 300 毫秒内返回一个空集。如果我使用 '=' 而不是 'like',它的速度会快两倍,但我有一种预感,后者将为我节省一些打字的时间。

原来动物园管理员认为他可能将一些天鹅输入为“黑色”,因此我相应地修改了查询:

select top 10 * 
from animal  
where colour like 'black%' 
and species like 'swan'
Run Code Online (Sandbox Code Playgroud)

结果证明它们都没有(实际上除了“黑色”动物之外没有“黑色%”动物)但查询现在需要大约 30 秒才能返回空。

似乎只是 'top' 和 'like %' 的组合引起了麻烦,因为

select count(*) 
from animal  
where colour like 'black%' 
and species like 'swan'
Run Code Online (Sandbox Code Playgroud)

返回 0 非常快,甚至

select * 
from animal 
where colour like 'black%' 
and species …
Run Code Online (Sandbox Code Playgroud)

sql-server-2005 sql-server

52
推荐指数
2
解决办法
3885
查看次数

Sql Server 维护计划 - 任务和调度的最佳实践

我的任务是为我们的 Sql Server 2005 数据库制定维护计划。我知道对于备份,我希望每 15 分钟执行一次完整的数据库备份和事务日志备份。我的问题是弄清楚我想做哪些其他任务以及我应该多久做一次。

所以,到目前为止,我已经想到了这一点。如果我的想法有任何缺陷或更好的方法,请纠正我。

  1. 备份 - 所有表,完整备份(每日)
  2. 备份 - 选定表,完整备份(每小时)
  3. 备份 - 事务日志(每 15 分钟)
  4. 检查数据库完整性(每天)
  5. 重组索引(每日)
  6. 更新统计数据(每日)
  7. 收缩数据库(每周)
  8. 重建指数(每周)
  9. 维护清理(每日)

我记得前段时间(当我在另一份工作中制定类似计划时)读到其中一些任务不需要每天运行或不应该每天运行。至于哪些,它逃脱了我。我可以使用一些指导来创建更好的维护计划,以减少灾难中的数据丢失,但不会在高峰时段运行时对系统造成负担(并提高性能)。

sql-server-2005 best-practices maintenance jobs

51
推荐指数
4
解决办法
16万
查看次数

如何使用 SELECT INTO 复制表但忽略 IDENTITY 属性?

我有一个带有标识列的表说:

create table with_id (
 id int identity(1,1),
 val varchar(30)
);
Run Code Online (Sandbox Code Playgroud)

众所周知,这

select * into copy_from_with_id_1 from with_id;
Run Code Online (Sandbox Code Playgroud)

导致 copy_from_with_id_1 在 id 上也带有标识。

以下堆栈溢出问题提到明确列出所有列。

咱们试试吧

select id, val into copy_from_with_id_2 from with_id;
Run Code Online (Sandbox Code Playgroud)

糟糕,即使在这种情况下 id 也是一个标识列。

我想要的是一张像

create table without_id (
 id int,
 val varchar(30)
);
Run Code Online (Sandbox Code Playgroud)

sql-server-2005 sql-server identity

45
推荐指数
4
解决办法
6万
查看次数

我可以启动存储过程并立即返回而不等待它完成吗?

我们有一个存储过程,用户可以手动运行它来获取全天不断使用的报告的一些更新数字。

我有第二个存储过程应该在第一个存储过程运行后运行,因为它基于从第一个存储过程中获得的数字,但是运行时间更长,并且是一个单独的进程,所以我不想在第二个存储过程运行时让用户等待。

有没有办法让一个存储过程启动第二个存储过程,并立即返回而不等待结果?

我正在使用 SQL Server 2005。

sql-server-2005 sql-server stored-procedures

45
推荐指数
4
解决办法
6万
查看次数

如何停止、脱机和删除恢复中的 SQL Server 数据库?

我有一个开发数据库,​​它在重新启动时进入了恢复模式,并且在过去一个小时左右一直在恢复。

我需要要么停止恢复,要么以某种方式杀死它。

我一点也不关心数据库或任何数据,我有部署脚本。

有任何想法吗?

sql-server-2005 sql-server

39
推荐指数
2
解决办法
12万
查看次数