小编RNo*_*bel的帖子

使用记录ID列表作为输入在SQL Server中更新400万条记录

在迁移项目期间,我面临着SQL Server中400万条记录的更新.

更新非常简单; 一个布尔字段需要设置为true/1,我输入的是一个必须填充该字段的所有id的列表.(每行一个id)

当谈到这个大小的sql任务时,我不是一个专家,所以我开始尝试包含" WHERE xxx IN ( {list of ids, separated by comma} )"的1 UPDATE语句.首先,我尝试了一百万条记录.在测试服务器上的一个小数据集上,这就像一个魅力,但在生产环境中,这给出了一个错误.所以,我缩短了ID列表的长度几次,但无济于事.

我尝试的下一件事是将列表中的每个id转换为UPDATE语句(" UPDATE yyy SET booleanfield = 1 WHERE id = '{id}'").某处,我读到每隔x行有一个GO是好的,所以我每100行插入一次GO(使用优秀的'sed'工具,从unix移植).

因此,我将400万个更新语句的列表分成每个250.000的部分,将它们保存为sql文件,并开始加载并运行第一个到SQL Server Management Studio(2008).请注意我也尝试过SQLCMD.exe,但令我惊讶的是,这比SQL Studio慢了大约10-20倍.

完成大约需要1.5小时,导致"查询已完成并出现错误".但是,messages-list包含一个很好的列表"受影响的1行"和"0行受影响",后者用于未找到id时.

接下来,我使用COUNT(*)检查了表中更新记录的数量,发现更新语句数量与更新记录数量之间存在数千条记录的差异.

然后我认为这可能是由于不存在的记录,但当我减去输出中"0行受影响"的数量时,有895条记录的神秘缺口.

我的问题:

  1. 有没有办法找出"查询已完成但有错误"中的错误描述和原因.

  2. 如何解释895记录的神秘差距?

  3. 有什么更好或最好的方法来进行此更新?(因为我开始认为我正在做的事情可能非常低效和/或容易出错)

sql t-sql sql-server data-migration sql-server-2008

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

内联 SVG 会增加父元素的高度 - 为什么以及如何防止它?

我在这样的元素中包含一个svg元素h1

<h1>
    64px ABC
    <span class="icon">
        <svg width="64" height="64" viewBox="0 0 64 64">
            <rect id="block" x="4" y="4" width="56" height="56" rx="16" ry="16" stroke-width="1" />
        </svg> 
    </span>
    xyz
</h1>
Run Code Online (Sandbox Code Playgroud)

然后,我将图标定位得稍低一些,以便使用相对定位与文本很好地对齐。

h1 {
    font-size: 64px;
}

.icon {
  position: relative;
  top: 0.14453125em; /* Calculated using https://seek-oss.github.io/capsize/ */
}

svg {
  height: 1em;
  fill: currentColor;
}
Run Code Online (Sandbox Code Playgroud)

这一切都有效,但在高度为 1em 时,其父元素的svg值会增加。height

这是h1没有的svg

这是包含在内svg的:

相差5px。

当我将高度更改为例如 0.9em 时,这种情况不会发生。

我尝试了许多不同的选项,但没有达到预期的结果 - 保持父元素的高度不变。

为什么会发生这种情况?我们如何确保不会发生这种情况?

代码笔: https: …

html css fonts svg

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

标签 统计

css ×1

data-migration ×1

fonts ×1

html ×1

sql ×1

sql-server ×1

sql-server-2008 ×1

svg ×1

t-sql ×1