小编Ben*_*ttr的帖子

SQL Server输出子句变为标量变量

有没有"简单"的方法来做到这一点,或者我需要传递一个带有"OUTPUT ... INTO"语法的表变量?

DECLARE @someInt int

INSERT INTO MyTable2(AIntColumn)
OUTPUT @SomeInt = Inserted.AIntColumn
VALUES(12)
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

122
推荐指数
4
解决办法
9万
查看次数

如何检查字符串是否是唯一标识符?

uniqueidentifier(SQL Server)是否等效于IsDate或IsNumeric?或者有什么等同于(C#)TryParse?

否则我将不得不编写自己的功能,但我想确保我不会重新发明轮子.

我想要涵盖的场景如下:

SELECT something FROM table WHERE IsUniqueidentifier(column) = 1
Run Code Online (Sandbox Code Playgroud)

sql sql-server

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

Thread.Sleep(0):什么是正常行为?

据我所知,Thread.Sleep(0)强制操作系统上下文切换.

我想检查在接收一些CPU时间之前可以在应用程序中传递的最长时间.

所以我构建了一个在while循环(c#)中执行Thread.Sleep(0)的应用程序,并计算每次调用之间传递的时间.

当此应用程序是在双核测试PC上运行的唯一应用程序时,最大观察时间不到1毫秒(平均为0.9微秒)并且它使用所有可用的CPU(100%).

当我沿着CPU填充虚拟应用程序(所有具有相同优先级)运行它时,最大时间约为25毫秒,平均时间为20毫秒.它的行为与我期望的完全一样.而且时间非常稳定.

每当它获得一些CPU时间时,它会立即将控制权交给任何有进行某些处理的人,这就像烫手山芋游戏(CPU使用率下降到0%).如果没有其他应用程序运行,则控件立即返回.

鉴于此行为,我预计此应用程序对运行实际应用程序的计算机的影响最小.(并且给我实际的"延迟",我期望在那里运行的应用程序中看到).但令我惊讶的是,它确实对这个特定系统的性能产生了负面影响(以可观察的方式).

我错过了一些关于Thread.Sleep(0)的重要观点吗?

作为参考,这里是该应用程序的代码

private bool _running = true;
private readonly Stopwatch _timer = new Stopwatch();

private double _maxTime;
private long _count;
private double _average;
private double _current;

public Form1()
{
    InitializeComponent();
    Thread t = new Thread(Run);
    t.Start();
}

public void Run()
{
    while(_running)
    {
        _timer.Start();
        Thread.Sleep(0);
        _timer.Stop();

        _current = _timer.Elapsed.TotalMilliseconds;
        _timer.Reset();
        _count++;

        _average = _average*((_count - 1.0)/_count) + _current*(1.0/_count);
        if(_current>_maxTime)
        {
            _maxTime = _current;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

为清晰起见而编辑(应用程序的目的): 我目前正在运行一个软实时多线程应用程序(以及一组应用程序),它们需要每隔大约300毫秒对一些输入作出反应,但我们不时会错过一些截止日期(不到1%的时间)我正在努力提高这个数字.

我想验证在同一台机器上由其他过程引起的当前变化是什么:我通过在上面的半实时机器上安装上面描述的应用程序来强调,观察到的最大时间将告诉我系统引起的变化.IE我有300毫秒但是在线程获得一些CPU时间之前的最大观察时间是50毫秒,所以为了提高性能,我应该将处理时间设置为最大250毫秒(因为我可能已经晚了50毫秒).

c# windows performance multithreading

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

构建服务器上的单元测试:发布或调试代码?

在.NET(C#)中,单元测试的调试/发布版本是否有任何优势/劣势?

您通常在构建服务器上使用哪种目标配置进行单元测试?有关系吗?

代码覆盖怎么样(对于这个,我猜测需要调试版本).

c# continuous-integration unit-testing

13
推荐指数
2
解决办法
3938
查看次数

NUnit检查数组的所有值(带容差)

在NUnit中,我可以执行以下操作:

Assert.That(1.05,Is.EqualTo(1.0).Within(0.1));
Run Code Online (Sandbox Code Playgroud)

我也能做到这一点:

Assert.That(new[]{1.0,2.0,3.0},Is.EquivalentTo(new[]{3.0,2.0,1.0}));
Run Code Online (Sandbox Code Playgroud)

现在我想沿着这条线做点什么

Assert.That(new[]{1.05,2.05,3.05},
   Is.EquivalentTo(new[]{3.0,2.0,1.0}).Within(0.1));
Run Code Online (Sandbox Code Playgroud)

除了Within在这种情况下不支持关键字.是否有解决方法或其他方法可以轻松地做到这一点?

c# nunit

12
推荐指数
2
解决办法
6623
查看次数

带左连接的输出子句,如何?

是否有可能沿着这些方向做一些事情:

DELETE TOP(1) m
FROM MyTable m
OUTPUT deleted.*
LEFT JOIN MyOtherTable ON MyOtherTable.SomeColumn=s.SomeColumn
Run Code Online (Sandbox Code Playgroud)

我知道这有效:

DELETE TOP(1) 
FROM MyTable
OUTPUT deleted.*
Run Code Online (Sandbox Code Playgroud)

这也有效(虽然没有意义):

DELETE TOP(1) m 
FROM MyTable m
LEFT JOIN MyOtherTable ON m.SomeColumn=MyOtherTable.SomeColumn
Run Code Online (Sandbox Code Playgroud)

sql sql-server

10
推荐指数
1
解决办法
4774
查看次数

SQL Server文件流 - 删除"速度"

我第一次使用filestream数据类型(SQL Server 2008),当我进行一些快速插入/删除时,我遇到了问题.基本上,文件实际从文件系统中删除的速度比插入/删除速度慢,即使我手动调用垃圾收集器(据我所知,CHECKPOINT应该调用垃圾收集器).

下面的代码说明了问题 - 执行大约需要30秒,但是你需要等待几分钟才能从文件系统中删除最后一个文件(当我查找C:\ FSTest\Files文件夹时)

有没有办法加快垃圾收集器?(它似乎每10秒大致删除20个文件 - 这让我相信,如果我每秒存储/删除超过2条记录,我最终会最终填满硬盘)

谢谢

CREATE DATABASE FSTest ON PRIMARY
    (NAME = FSTest_data, FILENAME = N'C:\FSTest\FSTest_data.mdf'),
FILEGROUP FSTestFileGroup CONTAINS FILESTREAM
    (NAME = FSTestFiles,FILENAME = N'C:\FSTest\Files')
LOG ON 
    (NAME = 'FSTest_log', FILENAME = N'C:\FSTest\FSTest_log.ldf');
GO

USE FSTest;
GO

CREATE TABLE FSTest (
    Guid UNIQUEIDENTIFIER ROWGUIDCOL NOT NULL UNIQUE DEFAULT NEWSEQUENTIALID(),
    Name VARCHAR (25),
    Data VARBINARY(MAX) FILESTREAM);
GO

ALTER DATABASE FSTest SET RECOVERY SIMPLE;
GO

SET NOCOUNT ON
DECLARE @test int
SET @test=0
WHILE @test<1000 BEGIN …
Run Code Online (Sandbox Code Playgroud)

sql sql-server filestream

8
推荐指数
1
解决办法
3544
查看次数

在32位版本的Windows上编译x64(Teamcity)

我们的Teamcity代理现在在32位操作系统上运行,直到现在这还不是问题(我们现在有一个x64应用程序可以在那里构建).

我听说可以在32位操作系统上编译x64应用程序,但我从来没有这样做过.Teamcity在x64中构建特定项目所需的步骤是什么 - 理想情况下使用MSBuild?

当我将项目的MSBuild属性"Run Platform"设置为x64时,我的代理给出了以下警告:"未满足的要求:DotNetFramework4.0_x64存在"

作为旁注:我们最终会将代理移动到64位操作系统,但我想要一个短期解决方案.

.net c# msbuild teamcity 64-bit

7
推荐指数
1
解决办法
5354
查看次数

数据聚合 - 每日SQL脚本与数据仓库

请原谅我(如果已经有人问过这个问题)(我对数据仓库/ BI知之甚少,还没有掌握关键字).

我有一个每天增加超过10万行的表,每行有一个时间戳和关于项目的多个信息(尺寸,重量,颜色等).在此期间后,个人数据可能有用一个月左右,我们只对聚合感兴趣.我有一个专用软件,可以更详细地显示各行,主要使用PowerPivot来满足我的报告需求.

我可以想出一个SQL查询,每天填充一个新表:我会在每个小时/项目/批次中有一行,我会总结信息(sum/average/stddev/etc.)

在一天之内,我的脚本将启动并运行,我可以使用powerpivot对抗这个新表.这一切都在我感到舒服的地方:普通的旧SQL.

从我收集的关于DataWarehouse和BI的一些信息中,我要做的事情听起来很像创建维度和事实.因此,我的问题是:值得进一步调查这个方向(BI)或者因为我的问题相对简单,我会更好地留在关系数据库中.

NB正在生成的报告通常与另一个数据库相关联,以生成更有意义的信息.Powerpivot完成的任务非常好.

sql data-warehouse relational-database business-intelligence

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

如何仅为生成的文件禁用"警告为错误"?(MSBuild的)

在我们的连续集成服务器(Teamcity 5.1.3)上,我们有一个自动构建应用程序的msbuild脚本.

当我们启用"警告为错误"时:在Visual Studio中,它构建正常(它忽略"*.designer.cs"文件中的方法.但在构建服务器上,我们总是收到以下错误:

[(Rebuild target(s)):] somefile.Designer.cs(XX, XX): error CS1591: Warning as Error: Missing XML comment for publicly visible type or member...
Run Code Online (Sandbox Code Playgroud)

正在使用的MSBuild脚本如下所示:

<MSBuild Projects="proj\$(ProjectName).sln"
         Targets="Clean;Rebuild"
         Properties="Configuration=Release"
         StopOnFirstFailure="True">
</MSBuild>
Run Code Online (Sandbox Code Playgroud)

我可以理解为什么会这样做,但必须有一种方法告诉msbuild忽略生成的文件中缺少的注释?

EDITED

进一步挖掘:在Visual Studio解决方案中,我们选中了"警告为错误",但我们还添加了"抑制警告"文本框中列出的错误1591.MSBuild似乎没有拿起那个"压制警告"文本框并且无法构建.我能做什么?

再次编辑 问题是MSBuild正在针对任何CPU(并且在"任何CPU"配置中我们没有抑制错误1591).一旦我们更改了任何CPU以排除错误1591,它就开始在构建服务器上正确构建.谢谢那些有帮助的人.

msbuild teamcity continuous-integration compilation visual-studio

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

SVN修订图

是否有任何(免费)工具能够生成显示合并的图表(在分支/标签之上).

我理解与此相关的困难以及可能产生的误导性信息,但我仍然想知道给定存储库中的合并(可视化).

svn windows tortoisesvn

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