标签: sql-server-2008

数据库集群的最佳设置

我需要为我投入生产的系统设置一个好的数据库集群解决方案。我希望从专家那里得到一些建议,因为我主要是一名开发人员而不是数据库管理员。

背景
我和我的团队正在用基于 .NET 的系统替换旧系统。目前,我们正在做并行测试,并在慢慢将用户迁移到新系统;然而,令我震惊的是,一旦 thigs 真正开始运行,我们当前的数据库解决方案不足以处理负载。现在,我在一台运行 SQL Server 2008 R2 的 Dell PowerEdge 服务器上拥有我们的整个数据库。它适用于开发和基本测试,但是当我们决定拔掉旧系统的插头并完全使用新系统时,我们将需要诸如故障转移、负载平衡、冗余等之类的东西。我从来没有实施过集群之前,因为我工作的任何地方都已经实施了,而不是我的责任来维护。由于我们正在从头开始实施基于 PC 的系统,因此我正在寻找一个起点。

建议
您对我目前的情况有什么建议:我们有大约 50 个内部用户,他们将负责从数据输入、索赔处理等方面的工作,并且可能有大约 1500-2000 个来自外部的并发连接。进行虚拟设置还是物理设置更好?光纤通道还是SATA?

sql-server-2008 clustering

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

批量插入 - 最佳用法

我需要将 1.5 亿行只有 int/bigint 列从一个 SQL 实例导出到另一个。我使用 BCP queryout 导出行和 BULK INSERT 将行导入另一个表。

我将 1.5 亿行拆分为 3 个 BCP 导出文件,每个文件有 5000 万行和 3 个 BULK INSERTS。它有效(15 分钟 BCP 输出/40 分钟批量插入),但我宁愿只导出一个文件并导入一个文件。

这在技术上是可行的,还是我可能会遇到大量行的问题?我从未从 BCP 文件中导入超过 5000 万行,我不确定这如何解决。BCP 导出或导入有限制吗?

谢谢,

sql-server-2008 insert bcp bulk

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

在将数据暂存到生产中时,是否有非 DDL 方法来保留反向引用?

假设我有这个假设的模式:

源 (OLTP) 数据库:

Table Orders
------------
OrderID int IDENTITY (PK),
CustomerID int NOT NULL,
OrderAmount decimal NOT NULL
Run Code Online (Sandbox Code Playgroud)

目的地 (DSS) 数据库:

Table Activity
--------------
ActivityID int IDENTITY (PK),
PersonID int NOT NULL,
Amount decimal NOT NULL

Table ActivityOrderImport
--------------------
ActivityID int NOT NULL,
SourceOrderID int NOT NULL

Table CustomerMapping
---------------------
CustomerID int NOT NULL,
PersonID int NOT NULL
Run Code Online (Sandbox Code Playgroud)

显然,随着更多的转换,真正的交易要复杂得多。但暂时假设 ETL 所做的只是将来自外部实体的特定事务(“订单”)合并到跟踪通用“活动”的 DSS 中。外部客户和 DSS 人员之间的链接位于 CustomerMapping 表中。

“导入”表的想法是在出现问题时提供某种审计跟踪。我们对源系统没有太多控制权,并且知道它有点不稳定。因此,能够了解任何给定活动的起源对我们来说非常重要。

现在,有一个使用 DDL 执行此操作的脚本,如下所示:

ALTER TABLE Activity
ADD OrderID int NULL

MERGE …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server etl

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

如何在 SQL Server 2008 中使用 XML 插入多条记录

我在我的 Web 应用程序后端使用 SQL Server 2008。显然,每当有多个插入场景时,我都会遍历 C# 代码中的所有记录。我从未尝试过使用 XML 进行多次插入。我认为在阅读了许多关于使用 SQL Server 2008 进行 XML 操作的博客之后,这个过程非常繁琐..所以我的问题是..

  • 通过 XML 插入是否比传统插入高效得多?
  • 是我可以在 C# 中序列化类的通用方法--> 在 SQL 中操作 XML--> 插入也将数据读取为 XML--> 将 XML 反序列化为普通对象?

sql-server-2008 xml

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

日期时间类型数据的 bcp in 导致“无效的日期/时间格式”

我熟悉 bcp 实用程序,我有一个包含日期时间数据的大表,我以多种方式 bcp 输出它:本机、字符、分隔。

然后我 bcp 到一个与原始表具有相同列/格式的截断表中,但是,我得到如下错误:

----------------
Starting copy...
SQLState = 22008, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Invalid time format
SQLState = 22008, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Invalid time format
SQLState = 22008, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Invalid time format
SQLState = 22008, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Invalid date format
SQLState = 22008, NativeError = 0
Error = [Microsoft][SQL …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server bcp

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

ALTER INDEX REBUILD 使用哪个填充因子?

的TechNet给我的感觉,我要么必须明确地设置想要的填充因子或当我不指定它,默认的填充因子0 choosen。

对于我知道添加行的表,填充因子 0 不是一个好的选择。有没有办法重建索引,以便使用最后一个显式索引?

BTW:我认为这应该是默认设置。

index sql-server-2005 sql-server-2008

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

识别孤立数据的最佳方法?

我有几十个表,其中有数据,包括核心数据集,然后是公司特定数据。

我永远无法删除核心数据集,这对所有公司都是全球性的。

但我希望能够帮助识别孤儿数据。

处于非活动状态但尚未删除的数据。

我不需要查询,我可以自己弄清楚。

只是关于最佳实践的一些想法,以帮助识别然后摆脱孤立数据,这有望减少数据库大小。

谢谢

sql-server-2008 best-practices

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

涉及属性时选择 XML 值

我有一个在字段中存储 XML 值的表:OtherData。

来自一行的 XML 值:

< file path="C:\WINDOWS\system32\svchost.exe" />
Run Code Online (Sandbox Code Playgroud)

我想选择所有具有像“%svchost%”这样的属性路径的行

执行此操作的正确 SQL 查询是什么?

sql-server-2008 xml

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

跳过前 12 行后,如何根据前一行计算值?

我正在寻求帮助来编写此查询。我在下面包含了一些示例数据。我最初的前提是从第 13 行开始的所有值都是动态值,前 12 行是静态值。我知道我想用来计算每一行值的公式。

以下是我认为的 DDL

CREATE VIEW [v_AMP_C] AS

    SELECT     in.I_Date  ,--Date
               in.I_O_P   ,--Money
               in.I_O_H   ,--Money
               in.I_O_L   ,--Money
               in.I_C_O   ,--Money 
               c.AMPS12_C  --Money
    FROM       dbo.IC_Raw_In in
    INNER JOIN dbo.AMPS12_C c ON in.I_Serial = c.i_serial
Run Code Online (Sandbox Code Playgroud)

并且通过dbo.IC_Raw_In在除 I_Date 之外的所有列上使用数据类型为 Money的大容量插入将数据导入到此表中。

然后当我运行这个查询时,SELECT * FROM v_AMP_C我得到了下面的输出

I_Date   I_O_P     I_O_H    I_O_L    I_C_O     AMPS12_C
01/10/11 509.75    515      508      512.45    512.45
01/10/11 511.7     511.7    506.1499 506.5499  509.4999
01/10/11 507.1499  510.25   507.1499 510.25    509.7499
01/10/11 510       512.3499 509.2999 512.3499  510.3999
01/10/11 512.5     512.5 …
Run Code Online (Sandbox Code Playgroud)

sql-server-2005 sql-server-2008 sql-server

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

端口号更改

我们计划为 SQL Server 2005/2008 故障转移群集设置静态端口。关于为每个集群的 4 个节点选择/选择什么端口的任何指南?(主动/主动)我还认为一些应用程序需要了解静态端口。了解哪个应用程序设置为使用来自 SQL 实例的默认端口的最佳方法是什么?一般来说,在 sql server 故障转移群集上实现端口号更改的最佳方法是什么?

sql-server-2005 sql-server-2008 sql-server clustering

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