标签: sql-server

完整的数据库备份

我正在使用第三方工具进行计划数据库备份。我需要做一个额外的完整备份。它是否应该受到计划备份的影响?如果是,有什么解决办法吗?

sql-server backup

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

哪些 TLog 导致 SAN snap 中的大块更改?

环境是 SQL Server 2014 Enterprise Edition,由 CommVault Simpana 管理的 NetApp 存储。我们在一个实例上设置了 100 个 dbs,所有 TLog 都在同一个卷上。

SAN 管理员每天设置 4 次 TLog 备份,每晚对 TLog 备份卷进行一次完整快照。保留期为 14 天,因此 TLog 备份卷在任何时候都有 14 个 TLog 快照。

最近,TLog 备份卷几乎耗尽空间,因为完整快照正在快速增加。我们将此归因于年终数据处理,导致大量块更改。预计这种上涨不会持续,但事实并非如此。

SAN 管理员表示,他无法知道哪些 TLog 文件导致了块更改的增加以及更大的快照。

我知道文件和块之间存在脱节,但我认为您可以通过 Simpana、NetApp 或 PowerShell 连接这些点,以找出导致大块更改的 TLog。

任何建议,将不胜感激。

谢谢

sql-server storage transaction-log

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

在 SQL Server 中格式化电话号码

我正在使用 SQL Server 2008,我发现此解决方案仅适用于 SQL Server 2012 - 在 SQL Server 2008 中格式化电话号码的等效方法是什么?

FORMAT([PhoneField],'###-###-####')
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server t-sql

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

在sql中将日期平均值转换为日期时转换失败

我已经从日期中取平均日期并试图获得平均日期的结果,但它引发了如下错误: Conversion failed when converting date and/or time from character string.

sql查询执行为:

select 
CONVERT
(
    DATE,
    LEFT(
          convert(
                  varchar(10),
                  AVG(
                        convert(
                                 int, 
                                 convert(
                                           varchar(10), 
                                           OnMarkDate, 
                                           112
                                         )
                                 )
                       )
                  ),8
          )
)
from @tbl_XMLResult
Run Code Online (Sandbox Code Playgroud)

列值如下:

   '2001-10-11',
   '2001-10-03',
   '2001-09-24',
   '2000-05-31',
   '2001-10-15',
   '2008-01-01'
Run Code Online (Sandbox Code Playgroud)

数据类型为日期。

sql-server sql-server-2012 date

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

使用 Echo 语句在文本文件中写入 Echo is ON

以下代码用于在文本文件中写入数字,而是将“Echo is ON”写入文本文件。

SET @CMD = 'ECHO '+@Ver+'>'+@Vercheck      
  Print @CMD

EXEC xp_cmdshell @CMD  
  ,NO_OUTPUT 
Run Code Online (Sandbox Code Playgroud)

打印@CMD 给出“ECHO 1>C:\Pharmsuite\Vercheck.txt”

这里查询写的是“Echo is ON”而不是 1。

sql-server-2008 sql-server t-sql xp-cmdshell

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

使用游标改进基于 SET 的方法的查询

我仍然是查询优化的新手,我有一个存储过程,它使用游标遍历表中的每一行,并执行以下操作:

  1. 计算每行之间的时间差
  2. 计算每行之间的距离
  3. 如果距离 < 5 AND TimeDifference > 3 分钟,则添加到 TEMP 表

我尝试将此 Cursor 转换为 WHILE 循环,但性能下降。所以我需要帮助将其转换为SET BASED方法而不是Procedural Based方法

所以 Cursor 执行这个逻辑:

-- READ Current Row into Cursor Variables
FETCH NEXT FROM crAssetIgnitionOnOff INTO
              @current_iVehicleMonitoringID
            , @current_iAssetID
            , @current_dtUTCDateTime
            , @current_sptGeoLocationPoint
            , @current_fLatitude
            , @current_fLongitude
            , @current_fAngle
            , @current_fSpeedKPH 
            , @current_sIgnitionStatus
            , @current_eEventCode
            , @current_sEventCode

IF(@current_iAssetID = @prev_iAssetID)
    BEGIN

        ---- Calculate Time Difference from previous Point
    DECLARE @diffInSeconds INT
        SET @diffInSeconds = DATEDIFF(SECOND, @prev_dtUTCDateTime, @current_dtUTCDateTime) …
Run Code Online (Sandbox Code Playgroud)

performance sql-server optimization cursors sql-server-2012 query-performance

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

按基于类别的多列值返回不同的记录

ID    MODEL    MODELSTATUS    CONTROL
11     100      GOOD           XN
24     100      TRENDING       BF
33     101      GOOD           XN
46     102      BAD            BF
50     103      BAD            XN
64     103      BAD            BF
77     104      PENDING        XN
89     104      TRENDING       BF
92     105      TRENDING       BF
93     105      TRENDING       XN
Run Code Online (Sandbox Code Playgroud)

鉴于上面的数据,我将如何返回下面的结果。可以有 1 条或 2 条(最多)具有相同 MODEL 的记录。如果 MODEL 有 2 个记录,则 CONTROL 将不同。

如果 MODESTATUS 为“趋势”,则返回该记录。否则,如果 MODELSTATUS 是 'Pending' 或 'Bad' 返回该记录。否则,如果 MODEL 有 2 条记录,其中 MODELSTATUS 与 CONTROL 的返回记录相同,则为“XN”

ID    MODEL    MODELSTATUS    CONTROL
24    100 …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2014

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

浏览服务器不显示本地实例

我刚刚安装了 SQL Server 和 SQL Server Management Studio,但它在服务器列表中没有显示任何内容,我不知道如何连接到它。

这表明我已经安装了 SQL Server:

在此处输入图片说明

但在这张图片中,您可以看到我的“浏览服务器”对话框是空的:

在此处输入图片说明

网络服务器也是空的。

sql-server ssms installation connectivity

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

DBCC SHRINKDATABASE 操作的优缺点

我已经根据this issue阅读了MSDN - Microsoft Manual,但我仍然没有明确的理解,什么时候应用这个选项有用,什么时候没有用。请指教。

sql-server

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

在 WHERE 子句中引用 SELECT 子查询值

完整查询

SET @vSelect = 
    '
    SELECT                       
        T1.BranchShortName AS BranchShortName,
        (
            SELECT TT1.EmployeeName
            FROM [dbo].[Tb_OPL_Employee] AS TT1
            JOIN [dbo].[Tb_MKT_SKD] AS TT2
                ON TT2.IdTb_OPL_Branch = TT1.IdTb_OPL_Branch
            JOIN [dbo].[Tb_SYS_Approval] AS TT3
                ON TT3.TaskId = TT2.TaskId
            WHERE
                TT3.IdTb_OPL_JobTitles = TT1.IdTb_OPL_JobTitles
                AND TT3.IdTb_OPL_JobTitles = 
                (
                    SELECT MAX(TTT3.IdTb_OPL_JobTitles) 
                    FROM [dbo].[Tb_SYS_Approval] AS TTT3 
                    WHERE 
                        TTT3.IsPassed = 1 
                        AND TTT3.ApprovalLevelCode = ''Approve'' 
                        AND TTT3.TaskId =TT2.TaskId
                )
                AND TT3.IdTb_OPL_Branch = TT1.IdTb_OPL_Branch
                AND TT2.IdTb_MKT_SKD = T2.IdTb_MKT_SKD
        ) AS LastApproval,
        (
            SELECT TT1.EmployeeName 
            FROM [dbo].[Tb_OPL_Employee] AS TT1
            JOIN [dbo].[Tb_MKT_SKD] AS TT2 …
Run Code Online (Sandbox Code Playgroud)

sql-server subquery sql-server-2012 alias

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