小编A-K*_*A-K的帖子

如何在SQL Server中创建实体化视图?

我将设计一个DW,我听说了物化视图.实际上我想创建一个视图,它应该在更改基表时自动更新.任何人都可以用查询示例解释..

sql-server database-design indexed-views

89
推荐指数
4
解决办法
20万
查看次数

SQL Server:如何约束表包含单个行?

我想在我的应用程序的配置表中存储一行.我想强制说这个表只能包含一行.

实施单行约束的最简单方法是什么?

sql-server singleton database-design

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

你如何对你的T-SQL进行单元测试

你如何对你的T-SQL进行单元测试?您使用哪些库/工具?

单元测试涵盖了多少百分比的代码,如何衡量?您如何确定首先进行单元测试的模块?

您认为您在单元测试线束上投入的时间和精力是否得到了回报?

如果您不使用单元测试,可以解释原因吗?

database sql-server unit-testing sql-server-2005 sql-server-2008

46
推荐指数
2
解决办法
8957
查看次数

在SQL Server中使用外键是否有严重的性能损失?

我正在尽我所能说服我的老板让我们在我们的数据库中使用外键 - 到目前为止没有运气.

他声称这需要花费大量的性能,并说我们现在只需要有工作来清理无效的引用.

显然这在实践中不起作用,并且数据库充斥着无效的引用.

有没有人知道比较,基准或类似的证明使用外键没有显着的性能影响?(我希望能说服他)

sql sql-server database-design foreign-keys

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

如何连续运行NUnit测试夹具?

我在C#/ NUNit中实现了几套集成测试.每个测试套件都是一个单独的类,每个夹具设置从脚本创建并填充SQL Server数据库.这一切都曾经在Resharper 5.1之前工作得很好.

不幸的是,Resharper 5.1开始同时运行多个灯具.这是一个重大改变 - 他们都在尝试创建和填充相同的数据库,这显然最终会陷入混乱.有什么方法可以让Resharper连续运行我的测试夹具吗?

如果没有,你会建议连续运行我的NUnit测试夹具,一次一个夹具?单个测试运行的顺序无关紧要.

c# sql-server resharper nunit unit-testing

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

为什么我可以在可空列上创建一个带有PRIMARY KEY的表?

以下代码创建表而不引发任何错误:

CREATE TABLE test(
ID INTEGER NULL,
CONSTRAINT PK_test PRIMARY KEY(ID)
)
Run Code Online (Sandbox Code Playgroud)

请注意,我无法按预期插入NULL:

INSERT INTO test
VALUES(1),(NULL)
ERROR:  null value in column "id" violates not-null constraint
DETAIL:  Failing row contains (null).
********** Error **********

ERROR: null value in column "id" violates not-null constraint
SQL state: 23502
Detail: Failing row contains (null).
Run Code Online (Sandbox Code Playgroud)

为什么我可以创建一个具有自相矛盾定义的表格?ID列显式声明为NULLable,并且作为PRIMARY KEY的一部分,它隐式地不可为空.是否有意义?

编辑:如果这个自相矛盾的CREATE TABLE在那里失败了会不会更好?

postgresql ddl constraints primary-key postgresql-9.3

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

您如何确保新索引不会减慢查询速度?

当我们添加或删除新索引以加速某些事情时,我们最终可能会放慢速度.为了防止这种情况,在创建新索引后,我正在执行以下步骤:

  1. 启动Profiler,
  2. 运行一个包含大量查询的SQL脚本,我不想放慢速度
  3. 将跟踪从文件加载到表中,
  4. 在添加(或删除)索引之前,分析来自跟踪的CPU,读取和写入以及先前运行的结果.

这是一种自动化的,可以满足我的需求.但是,我不确定是否有更好的方法.是否有一些工具可以满足我的需求?

编辑1投票结束我的问题的人,你能解释一下你的理由吗?

编辑2我搜索了,但没有找到任何解释如何添加索引可以减慢选择.然而,这是一个众所周知的事实,所以应该有某种东西.如果什么都没有出现,我可以稍后写几个例子.

编辑3一个这样的例子是:两列高度相关,如身高和体重.我们有一个高度索引,对我们的查询来说没有足够的选择性.我们在权重上添加一个索引,并运行一个包含两个条件的查询:高度范围和权重范围.因为优化器不知道相关性,所以它严重低估了查询的基数.

另一个例子是在增加列上添加索引(例如OrderDate)会严重减慢查询的速度,如OrderDate> SomeDateAfterCreatingTheIndex.

sql-server query-optimization sql-server-2008 sql-server-2008-r2

19
推荐指数
2
解决办法
6107
查看次数

SQL Server,不能将null插入主键字段?

我准备把这头发撕掉了.我对MS SQL很新,并且在任何地方都没有看过类似的帖子.

当我尝试做这样的声明时:

INSERT INTO qcRawMatTestCharacteristic 
VALUES(NULL, 1,1,1,1,1,1,1,'','','', GETDATE(), 1)
Run Code Online (Sandbox Code Playgroud)

我得到以下内容:

无法将值NULL插入列'iRawMatTestCharacteristicId',表'Intranet.dbo.qcRawMatTestCharacteristic'; 列不允许空值.INSERT失败.

我理解错误,但null值是我的主要字段与int数据类型.

有任何想法吗!?

sql sql-server database-design insert

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

在C#中快速将350M数字加载到double []数组中

我将在二进制文件中存储350M预先计算的双数,并在我的dll启动时将它们加载到内存中.有没有内置的方法可以并行加载它,或者我应该自己将数据拆分成多个文件并自己处理多个线程?

回答评论:我将在足够强大的盒子上运行这个dll,很可能只在64位的盒子上运行.因为无论如何所有对我的号码的访问都是通过属性,我可以将我的号码存储在几个数组中.

[更新]

大家好,谢谢你的回答!我期待在不同的盒子上进行大量的基准测试.关于需要:我想加快一个非常慢的计算,所以我要预先计算一个网格,将其加载到内存中,然后进行插值.

c# parallel-processing

14
推荐指数
4
解决办法
2034
查看次数

这是MERGE中的错误,无法正确实施FOREIGN KEY吗?

我使用下面的表来实现子类型,这是一种非常常见的方法:

CREATE TABLE dbo.Vehicles(
    ID INT NOT NULL, 
    [Type] VARCHAR(5) NOT NULL,
    CONSTRAINT Vehicles_PK PRIMARY KEY(ID),
    CONSTRAINT Vehicles_UNQ_ID_Type UNIQUE(ID, [Type]),
    CONSTRAINT Vehicles_CHK_ValidTypes CHECK([Type] IN ('Car', 'Truck'))
);
GO

CREATE TABLE dbo.Cars(ID INT NOT NULL,
    [Type] AS CAST('Car' AS VARCHAR(5)) PERSISTED,
    OtherData VARCHAR(10) NULL,
    CONSTRAINT Cars_PK PRIMARY KEY(ID),
    CONSTRAINT Cars_FK_Vehicles FOREIGN KEY(ID, [Type])
        REFERENCES dbo.Vehicles(ID, [Type])
);
GO
-- adding parent rows
INSERT INTO dbo.Vehicles(ID, [Type]) 
VALUES(1, 'Car'),
(2, 'Truck');
Run Code Online (Sandbox Code Playgroud)

通过INSERT添加子行没有问题,如下所示:

INSERT INTO dbo.Cars(ID, OtherData)
VALUES(1, 'Some Data');

DELETE FROM dbo.Cars; …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2008 sql-server-2008-r2

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