问题列表 - 第2552页

如何在SQL Server中的大表中添加NOT NULL列?

要将NOT NULL列添加到具有许多记录的表中,需要应用DEFAULT约束.如果表非常大,则此约束会导致整个ALTER TABLE命令运行很长时间.这是因为:

假设:

  1. DEFAULT约束修改现有记录.这意味着db需要增加每条记录的大小,这会导致它将完整数据页上的记录转移到其他数据页,这需要时间.
  2. DEFAULT更新作为原子事务执行.这意味着需要增加事务日志,以便在必要时可以执行回滚.
  3. 事务日志跟踪整个记录.因此,即使只修改了一个字段,日志所需的空间也将基于整个记录的大小乘以现有记录的数量.这意味着向具有小记录的表添加列将比向具有大记录的表添加列更快,即使两个表的总记录数相同也是如此.

可能的解决方案:

  1. 把它吸干然后等待这个过程完成.只需确保将超时时间设置得很长.这样做的问题是,根据记录数量,可能需要数小时或数天才能完成.
  2. 添加列但允许NULL.然后,运行UPDATE查询以设置现有行的DEFAULT值.不要做UPDATE*.一次更新批量记录,否则您将遇到与解决方案#1相同的问题.这种方法的问题在于,当您知道这是一个不必要的选项时,最终会得到一个允许NULL的列.我相信有一些最佳实践文档说明你不应该有允许NULL的列,除非有必要.
  3. 使用相同的架构创建新表.将列添加到该架构.从原始表传输数据.删除原始表并重命名新表.我不确定这比#1更好.

问题:

  1. 我的假设是否正确?
  2. 这是我唯一的解决方案吗?如果是这样,哪一个是最好的?我不,我还能做什么?

sql-server

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

如何在不使用YUI中的索引的情况下查看javascript数组?

我知道jQuery和prototype有一个$ .each()函数来迭代数组中的每个元素.YUI是否对此提供任何帮助?

javascript yui

5
推荐指数
2
解决办法
2431
查看次数

SQL内联if语句类型问题

我想做一个返回这样的(MS)SQL查询:

Col1 Col2                  Col3
---- --------------------- ------
AAA  18.92                 18.92
BBB  20.00                 40.00
AAA  30.84                 30.84
BBB  06.00                 12.00
AAA  30.84                 30.84
AAA  46.79                 46.79
AAA  86.40                 86.40
Run Code Online (Sandbox Code Playgroud)

其中当Col1 = AAA时Col3等于Col2,而当Col1 = BBB时Col3是Col2的两倍.有人能指出我的方向吗?

sql sql-server

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

使用正则表达式匹配两个标签之间的所有内容?

如何在两个标签之间匹配(PCRE)所有内容?

我试过这样的事情:

<! - \S*LoginStart\S* - >(.*)<! - \S*LoginEnd\S* - >

但它对我来说效果不佳..

我对正则表达式有点新意,所以我希望有人能够向我解释如何实现这一点,如果它可以用正则表达式来实现的话.

谢谢

html php regex tags

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

在出现"问题"之前,Sourcesafe数据库有多大?

我们使用SourceSafe 6.0d并拥有大约1.6GB的数据库.我们还没有遇到任何问题,目前还没有计划改变源代码控制程序,但SourceSafe数据库在成为问题之前有多大?

谢谢

version-control performance limits visual-sourcesafe

5
推荐指数
3
解决办法
1992
查看次数

如何使用Excel进行项目管理?

Joel经常谈到使用MS Excel进行轻量级项目管理,但我很好奇这个想法的实际实现.我已经看到一些模板似乎通过宏克隆MS Project,这对于轻量级项目来说太过分了.有人有任何有用的模板吗?

excel project-management scheduling

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

如何 - 没有继承 - 重写类方法并从新方法中调用原始方法?

我找到了一个成功覆盖的源代码Time.strftime:

class Time
  alias :old_strftime :strftime
  def strftime
    #do something
    old_strftime
  end
end
Run Code Online (Sandbox Code Playgroud)

麻烦的是,strftime是一种实例方法.我需要覆盖Time.now- 一个类方法 - 在任何调用者获取我的新方法的同时,新方法仍然调用原始.now方法.我看了看alias_method并没有成功.

ruby time alias overriding class

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

有什么像功能模型吗?

在面向对象的范例中,我将在使用OO语言开始实现它之前创建一个对象/概念模型.

在函数式编程中是否有与对象模型平行的东西.它被称为功能模型吗?或者我们在范例中创建相同的概念模型,然后在其中一种语言中实现它.

有文章/书籍,我可以阅读有关功能模型的内容吗?

或以不同的方式...即使我们使用函数式编程语言,我们会从对象模型开始吗?

modeling functional-programming

5
推荐指数
2
解决办法
534
查看次数

随机算法

我需要一些关于随机性算法的帮助.所以问题是.

有8个事件将在8小时内发生.事件可能在随机时间发生.现在它意味着每秒钟发生事件的可能性为50 /(8*60*60)= .001736.如何使用随机生成算法执行此操作?

我可以得到随机数

int r = rand();
double chance = r/RAND_MAX;
if(chance < 0.001736)
    then event happens
else
    no event
Run Code Online (Sandbox Code Playgroud)

但大多数时候rand()返回0和0 <0.001736并且我收到的事件多于所需的事件.

有什么建议?


抱歉,我忘记提及我计算机会为双倍机会=(static_cast)(r)/(static_cast)(RAND_MAX);


它从static_cast中删除了double

double chance =(double)r /(double)(RAND_MAX);

c++ random events

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

Flash中的NetStream发布者可以暂停其流吗?

我正在使用Flash 8(AS2)和Flash Media Server 3制作网络摄像头视频流应用程序.实时流式传输视频非常简单,但我想让发布者能够暂停他们的流,有效地让人们观看快照而不是实时视频.

NetStream有一个pause()方法,但文档说它只适用于订阅者.有没有办法暂停流的发布?

flash actionscript actionscript-2 netstream

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