小编Nea*_*ers的帖子

24x7 vs 夜间时间窗口

我在哪里可以找到有关如何更好地转向 24x7 运营的资源?拥有大数据库的大公司是如何做到这一点的?我们的夜间工作,例如

  1. 清除旧数据
  2. 重新索引
  3. 更新统计

所有这些似乎都会对我们的系统造成严重影响(在线用户和实时数据馈送)。我已经在亚马逊上查找了与此主题相关的任何书籍,但到目前为止还没有找到任何内容。

sql-server

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

“从服务器接收结果时发生传输级错误”的疑难案例 SQL Server

我们正在构建一个新的 BizTalk 群集,其中包含两个 BizTalk 应用程序服务器和两个 SQL Server。从 BizTalk AppServer #1 上的 SSMS(与 #2 类似),我们有两个场景:

  1. 当前- 我们的基础架构团队刚刚重建了 2012/R2 Windows。它无法连接到特定的 SQL Server,但可以连接到其他 SQL Server。令人困惑的部分是,任何其他机器似乎都能够很好地连接到同一个 SQL Server,并且还可以针对它运行查询。

  2. 昨天- (我们从昨天开始重建盒子,所以不能回去......只是想描述问题。)它似乎偶尔连接。当它连接时,我尝试了一些查询,创建了一个测试数据库和表,并尝试了以下内容:

代码:

declare @MaxLoops int = 100
declare @LoopCounter int = 0 

while (@LoopCounter < @MaxLoops) 
begin 
     set @LoopCounter = @LoopCounter + 1 

     --select SYSDATETIME(), * from NealTest.dbo.NealTest
     waitfor delay '00:00:01' 
     print @LoopCounter 
     print SYSDATETIME() 
end 
Run Code Online (Sandbox Code Playgroud)

我编写脚本的初衷是查看在它“滚动”后我们是否会丢失连接,换句话说,我可以设置它并增加它@MaxLoops并让它运行一个小时左右。(也可以添加 try/catch 以帮助它继续查看它们是否是偶发的连接问题。)

脚本(Select注释掉了语句)给出了一个

传输级错误

所以我们开始一次突出显示一两行。声明工作正常,我可以在声明后打印值。当我们将其降低@MaxLoops到 5 时,它实际上运行了。我们增加到 15 它失败了Transport-level …

sql-server errors

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

如何替换“设置行数”

目前在 SQL Server 2008/R2 上。我刚刚在这里读到“设置行数”在 2012 年发布的某些版本中已被弃用:http : //technet.microsoft.com/en-us/library/ms188774.aspx

我们有一些遗留代码可能使用它来删除小块数据并最大限度地减少我们每晚“数据清除”工作中的锁定。

如果没有行数,我将不得不使用“top xxx”来代替?

  set rowcount 1000 /* Only delete this number of rows at a time */;
  declare @short_time datetime2 = DATEADD(week,-1,SYSUTCDATETIME());


      SET @TotalRowCount = 0 
      while ( select COUNT(1) from FlightAudit with (nolock) ) > @min_row_count
      begin
            delete FlightAudit where CreatedUTC < @short_time;
            SET @SaveRowCount = @@ROWCOUNT 
            SET @TotalRowCount = @TotalRowCount + @SaveRowCount 
            if @SaveRowCount=0 break;
            print 'delete from FuelerCertificationAudit...' + convert(varchar(10),@SaveRowCount) + ' Time=' + dbo.DateOrNullToChar(getdate()) 
      end
      print …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql

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

搜索所有存储过程以更新特定列

我期待在由触发器创建的审计表,我们足够聪明来保存SUSER_NAME();我们称为列LastUpdateRef,但不是所有的旧代码已经更新为使用它(这是一个独一无二的代码,以帮助跟踪更新回到导致它们的代码)。

所以我知道有人正在更新,例如,TerminalIdTransaction表格中。我该如何回答这个问题?

向我显示所有在 Transaction 表上具有更新语句的存储过程,这些语句显式更改了 TerminalId

似乎这超出了任何易于编写的 RegEx。

一些更新语句采用这种格式,其中表名在FROM

update a
set 
    ArrivalDate = @ArrivalDateLocalTime,
    LastUpdate = SYSDATETIME(),
    LastUpdateRef = 'REFGFI168',
    LastUpdateBy = @UserID
from Flight a where etc... 
Run Code Online (Sandbox Code Playgroud)

stored-procedures sql-server-2008-r2

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

Oracle:添加保留字作为列名

我正在尝试将测试系统上的表同步到生产中的表。在生产中,尽管可能很糟糕,但我相信他们使用保留字 SITE 作为列名。

alter table MY_TABLENAME
   modify ("SITE" varchar2(50),
           LOCATION_ID varchar2(50)
   ) 
   ;
Run Code Online (Sandbox Code Playgroud)

以上给出了错误:

ORA-00904: "SITE": 无效标识符

没有引号或括号的相同错误。

oracle alter-table

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