标签: sql-server-2008

数据值变化的查询(持续时间)不同

我正在尝试编写一个查询来获取表中状态的持续时间。此查询需要在 SQL Server 2008 中工作。

假设我有下表:

Key Value   RecordDate
1   1   2012-01-01
2   1   2012-01-02
3   1   2012-01-03
4   5   2012-01-05
5   5   2012-01-05 12:00:00
6   12  2012-01-06
7   1   2012-01-07
8   1   2012-01-08
Run Code Online (Sandbox Code Playgroud)

我想得到以下结果

Value StartDate   EndDate     Duration
1     2012-01-01  2012-01-05  4 days
5     2012-01-05  2012-01-06  1 days
12    2012-01-06  2012-01-07  1 days
1     2012-01-07  NULL        NULL
Run Code Online (Sandbox Code Playgroud)

基本上我想在它改变之前获取值的持续时间。

我正在接近某个地方,但仍然无法弄清楚:

SELECT [Key], [Value],  
       MIN(RecordDate) OVER(PARTITION BY [Value]) as 'StarDate',
       MAX(RecordDate) OVER(PARTITION BY [Value]) as 'EndDate',
       DATEDIFF(day, (MIN(RecordDate) OVER(PARTITION BY [Value])), …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server

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

维护计划重建idex后,事务日志变得巨大

几天前,我正在使用 SQL Server 2008 中的维护计划测试一些东西。

我创建了一个来重建索引并每周进行一次完整备份。(我知道,我今天发现了坏事)。

问题是,由于事务日志增长了很多(大约 80gb,db 是 60gb),备份没有运行。现在我一整天都在谷歌上搜索,看看是否有办法将事务日志缩小到以前的大小,比如 200mb。

更新

这是在我们的生产服务器上,维护计划如下:

重建索引

成功备份完整数据库

成功时 删除超过两周的备份。

这还没有完成,它在某个时候坏了,所以我想重建索引花了太长时间。所以备份没有发生。

我们还每小时备份一次交易日志。

这可能吗?为什么会发生这种情况?我知道在重建时它会在事务日志或类似的东西中创建索引的副本,但是有可能摆脱这个副本吗?

这就是我在 Job History 上的内容,所以看起来由于某种原因它在创建索引时失败了,并且由于计划成功进行备份,它停在那里。

信息 :

以用户身份执行:SHOCKLOGIC\DB1$。...ress: 2013-08-05 03:01:03.43 Source: Rebuild Index Task Executing query "ALTER INDEX [PK_ActivitiesPerGroup] ON [dbo].[Acti...".: 12% Complete End Progress Progress: 2013- 08-05 03:01:03.43 来源:重建索引任务执行查询“USE [Eventlogic]”。:完成 12% 结束进度进度:2013-08-05 03:01:03.52 来源:重建索引任务执行查询“ALTER INDEX [PK_ActivitiesPerHotelCat] ON [dbo].[A...".: 12% complete End Progress Progress: 2013-08-05 03:01:03.52 Source: Rebuild Index Task Executing query "USE [Eventlogic] ".: 12% complete End Progress Progress: 2013-08-05 …

sql-server-2008 backup maintenance transaction-log

4
推荐指数
1
解决办法
7237
查看次数

替换列值?

我最近进入了 SSIS,但无法在网络上的任何地方找到我想要实现的目标。

我试图将一些行作为输入,然后用其他内容替换一个特定列的值,然后返回带有修改过的列的行作为输出。

问题是我不知道要使用哪个任务。

我受到 SQL Server 2008 的限制。

我该如何开始?

sql-server-2008 sql-server etl ssis

4
推荐指数
1
解决办法
3946
查看次数

在SQL Server 2008 R2中新建一个数据库,但不是空白

当我尝试在 SQL Server 2008 R2 中创建新数据库时,它已完全创建,但它不是一个空白的空数据库,有许多表来自另一个数据库。我还尝试为其.mdf.ldf文件指定不同的名称,但没有任何改变!

你能帮我知道问题出在哪里吗?

另外,是否有任何命令可以将我的数据库重置为空白数据库?

sql-server-2008 sql-server sql-server-2008-r2

4
推荐指数
2
解决办法
967
查看次数

在多个范围内高效查询 MAX

在适当排序的索引覆盖的单个范围内执行 MIN() 或 MAX() 时,SQL Server 执行 TOP() 并因此在仅获取一行后返回值。当搜索条件包含多个范围时,SQL Server 会从两个范围中获取所有索引值并进行流聚合,这比对每个子值执行 TOP() 慢得多。

例如,假设每个客户有大量订单,如下所示:

CREATE TABLE orders
(
  customer_id int,
  quantity int
)
Run Code Online (Sandbox Code Playgroud)

运行此查询:

SELECT MAX(quantity) 
FROM orders
WHERE customer_id IN (1,2)
Run Code Online (Sandbox Code Playgroud)

将导致查询所需的时间是仅指定一个客户 ID 时的数倍。

执行上述查询的最有效方法是什么?相关地,如果需要单独的结果(即 GROUP BY customer_id),最好的方法是什么?

SQL小提琴:http ://sqlfiddle.com/#!3/ef0c6/1

performance sql-server-2008 sql-server query-performance

4
推荐指数
1
解决办法
2064
查看次数

重新启动后,我的 tempdb 数据文件的初始大小是多少?

sys.database_filessys.sysfiles报告大小,但这只是文件的当前大小。有没有办法找出 tempdb 数据文件在系统重新启动期间重新创建后的初始大小?

sql-server-2008 sql-server

4
推荐指数
1
解决办法
8155
查看次数

服务器还原失败 (Microsoft.SqlServer.SmoExtended)

我正在使用 SQL Server 2008。当我从备份文件恢复数据库时,我收到了错误。

服务器“WIN-TUT3YRM1MMN\SQLEXPRESS”的还原失败。(Microsoft.SqlServer.SmoExtended)
System.Data.SqlClient.SqlError:RESTORE 在从备份集中读取的数据库“KBCLDBNEW”中的页面 (44262:41495) 上检测到错误。(Microsoft.SqlServer.Smo)

我尝试在新数据库中恢复,但仍然出现错误。我找不到问题所在。谢谢你帮助我。

sql-server-2008 sql-server

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

如何查看服务器上哪个数据库使用的资源最多

我有一个数据库服务器,上面有几个数据库。我如何才能看到任何资源压力可能来自哪里?

我想得到一张表:

  • 数据库名称
  • 每秒批处理请求数
  • CPU时间
  • 逻辑读取
  • 逻辑写入

performance sql-server-2008 sql-server

4
推荐指数
2
解决办法
411
查看次数

是否可以在 32 位实例和 64 位实例之间设置故障转移群集?

我试图在我的实验室中设置几个虚拟机来测试 SQL Server 2008 和 Windows Server 2008 上的故障转移群集。

我拥有的其中一台主机无法运行 64 位虚拟机,但另一台主机却可以。果然,我先安装了 64 位机器(主机 A),却没有意识到主机 B 不能运行 64 位虚拟机。

我可以使用 x64 上的一个节点和 x86 上的另一个节点运行故障转移群集吗?还是我必须在主机 A 上重新安装操作系统才能成为 32 位?

sql-server-2008 sql-server clustering virtualisation windows-server

4
推荐指数
1
解决办法
864
查看次数

使用 updlock 锁定提示的副作用?

我只是在探索UPDLOCKSQL-Server 2008 中的提示,我发现它在避免某些死锁场景方面非常有用。使用这些类型的锁定提示时总会有一些副作用,但我找不到任何与此相关的副作用。

那么如果我在所有update查询中都使用它会发生什么?我不是在谈论select,只是update。它将如何对我产生负面影响?

sql-server-2008 sql-server deadlock

4
推荐指数
1
解决办法
4279
查看次数