小编Nei*_*ght的帖子

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

创建索引需要多长时间?

我有一个包含超过 7000 万行的表,我查看了已确定缺少索引的执行计划。不久前我拍了一张数据快照,并在本地测试数据库(创建速度很快)上创建了这个索引,而改进正是实时系统所需要的。我想知道的是,有没有办法告诉在实时系统上创建需要多长时间?

index sql-server-2008-r2

10
推荐指数
2
解决办法
3万
查看次数

使用维护计划管理事务日志大小

是否有在 SQL Server 2008 中配置维护计划的最佳实践?目前,我正在删除超过 40 小时的数据库备份和事务日志,然后进行备份。我看到的问题是事务日志仍然非常大。我应该包括收缩数据库计划任务吗?

sql-server-2008 sql-server transaction-log maintenance-plans

7
推荐指数
1
解决办法
6538
查看次数

一行占用多少空间

我需要找出表中单行占用了多少磁盘空间。然后我可以使用它作为近似值来计算通过删除旧的不需要的数据可以恢复多少磁盘空间。我是否必须SELECT像这样将所有列组合在一个语句中?

SELECT DATALENGTH([Id]) + DATALENGTH([Column1]) + DATALENGTH([Column2]) AS 'Size'
  FROM [MyTable]
Run Code Online (Sandbox Code Playgroud)

或者有没有我不知道的更好,更有效的方法?

编辑

我刚刚注意到,如果一列有一个NULL值,那么我就会得到NULL结果。

sql-server-2008-r2

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

ROW_NUMBER 和 DISTINCT 的问题

我有以下查询

SELECT Dept
      ,ID      
  FROM (SELECT TOP (@RowTo) ROW_NUMBER() OVER (ORDER BY Dept) AS ROWID,      
               Dept    
              ,ID
          FROM Department 
         WHERE Dept LIKE @Team + '%') as Calls        
 WHERE RowID >= @RowFrom AND RowID <= @RowTo 
Run Code Online (Sandbox Code Playgroud)

我需要获取DISTINCT部门列表,但需要此查询返回的分页。我曾多次尝试重写这个,但我失败了。有人有任何指示吗?

表数据

ID    Department  Location
1     HR          London
2     HR          Berlin
9     HR          Paris
11    HR          Amsterdam
12    IT          Berlin
13    IT          London
15    HR          New York
18    IT          Paris
19    IT          Barcelona
20    HR          Barcelona
21    Finance     Paris
22    Finance     London
23 …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008-r2

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

当只有一个日期时计算日期差异

我有 2 条记录,一条是停止时钟停止的详细信息,另一条是开始的。我在每条记录中只有一个日期值。我正在尝试找出停止日期和开始日期之间的差异。我正在寻找指针。我想通过做这样的事情:

SELECT e1.ID, MIN(e1.EventTime) AS [StopTotalMinutes]
          ,MAX(e2.EventTime) AS [StartTotalMinutes]
  FROM event AS e1
  JOIN event AS e2
    ON e1.ID = e2.ID
Run Code Online (Sandbox Code Playgroud)

我本来可以解决一些问题,但我失败了。

所以,表和一些样本数据是:

ID    |    EventTime     |   Action
1       2012-01-01 10:00      Stop
1       2012-01-01 13:31     Start
1       2012-01-03 09:45      Stop
2       2012-01-01 11:12      Stop
2       2012-01-10 15:35     Start
2       2012-01-11 08:39      Stop
Run Code Online (Sandbox Code Playgroud)

sql-server-2008-r2 date-format

0
推荐指数
1
解决办法
272
查看次数

VarChar 到 NVarChar 导致截断错误

我正在从一个临时表中导入一些数据,该表有一列定义为VARCHAR(150). 目标表列定义为NVARCHAR(200). 我正在使用一个INSERT INTO语句,但是当我运行 SQL 语句注释掉此列时,查询运行正确。当我取消注释这一行时,我得到:

Msg 8152, Level 16, State 4, Line 26

字符串或二进制数据将被截断。

该语句已终止。

关于为什么会发生这种情况的任何想法?

INSERT INTO table (col1, col2)
SELECT column1
      ,column2
  FROM tmpTable
Run Code Online (Sandbox Code Playgroud)

col1被定义为NVARCHAR(200)并且col2是DateTime。 column1被定义为VARCHAR(150)并且column2是DateTime。

当我注释掉column1并且col1导入语句运行正常时。

sql-server sql-server-2008-r2 truncate

0
推荐指数
1
解决办法
2674
查看次数