小编Jon*_*nor的帖子

软删除 - 使用IsDeleted标志还是单独的连接表?

我们应该使用标志进行软删除还是单独的连接表?哪个更有效率?数据库是SQL Server.

背景资料

前一阵子,我们有一位DB顾问进来查看我们的数据库架构.当我们软删除记录时,我们将更新相应表上的IsDeleted标志.有人建议,不要使用标志,而是将已删除的记录存储在单独的表中,并使用连接,因为这样会更好.我已经把这个建议付诸实践,但至少在表面上,额外的表和连接看起来比使用标志更昂贵.

初步测试

我已经设置了这个测试.

两个表,Example和DeletedExample.我在IsDeleted列上添加了一个非聚集索引.

我做了三次测试,加载了一百万条记录,其中包含以下已删除/未删除的比率:

  • 删除/ NonDeleted
  • 50/50
  • 10/90
  • 1/99

结果 - 50/50 50 50

结果 - 10/90 10 90

结果 - 1/99 在此输入图像描述

数据库脚本,供参考,示例,DeletedExample和Example.IsDeleted的索引

CREATE TABLE [dbo].[Example](
    [ID] [int] NOT NULL,
    [Column1] [nvarchar](50) NULL,
    [IsDeleted] [bit] NOT NULL,
 CONSTRAINT [PK_Example] PRIMARY KEY CLUSTERED 
(
    [ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

ALTER TABLE [dbo].[Example] ADD  CONSTRAINT [DF_Example_IsDeleted]  DEFAULT ((0)) FOR [IsDeleted]
GO

CREATE TABLE …
Run Code Online (Sandbox Code Playgroud)

indexing soft-delete sql-server-2008-r2

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

Windows服务实现IDisposable - 这是不好的做法?

我遇到过这段代码:

public class ServiceLauncher2 : ServiceBase, IDisposable
Run Code Online (Sandbox Code Playgroud)

然后这个:

        /// <summary>
        /// Disposes the controllers
        /// </summary>
        // This is declared new as opposed to override because the base class has to be able to
        // call its own Dispose(bool) method and not this one. We could just as easily name
        // this method something different, but keeping it Dispose is just as valid. 
        public new void Dispose()
        {
            foreach (var mgr in _threadManagers)
                mgr.Dispose();
            base.Dispose();
        }
Run Code Online (Sandbox Code Playgroud)

我之前从未在Windows服务实现中看到过这种情况.通常只会覆盖OnStop/OnStart.这是不好的做法吗?

windows c#-4.0

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

读取BCP格式文件时出现I/O错误

今天我创建了一个新的临时表和一个BCP .fmt文件.我创建了一些测试数据并尝试从命令行运行BCP实用程序:

BCP错误

我从以前的工作中获得了大约20种不同的格式文件和登台表,这是我第一次遇到这个错误.

我该如何解决这个错误?

请注意,我在下面添加了我的解决方案,但是如果你有其他答案,请加入.答案是如此古怪/模糊,我认为它可能会帮助其他人.

bcp sql-server-2008-r2

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

SQL Server返回码-6,这是什么意思?

我有一个没有问题的存储过程,返回代码是0.在某些情况下,我RAISERROR用户定义的错误(> 50000).在这些情况下,回报是-6.我只是好奇,-6是什么意思?我没有在程序中设置返回代码,因此这个数字是SQL Server(系统)生成的.

我发现这句话:

这些负数是否有任何意义,有点难以辨别.过去是这样的,返回值-1到-99是为系统生成的返回值保留的,而联机丛书为早期版本的SQL Server指定了值-1到-14的含义.但是,适用于SQL 2000的联机丛书对任何此类预留都保持沉默,并不解释-1到-14的含义.

有谁知道这些返回码的"隐藏"含义?

我正在使用SQL Server 2008 R2.

c# stored-procedures return-value sql-server-2008

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

IOException未处理 - 无法找到资源app.xaml

在我的一个WPF项目中,当我打开解决方案并在调试时启动它时出现此错误.如果我重新构建解决方案并再次启动它,则错误消失.

我已经使用以下方法删除了App.xaml中的StartUpUri,为应用程序实现了命令行支持:

WPF命令行

我如何摆脱这个恼人的错误?

使用VS 2010 .net 4.0

在此输入图像描述

System.IO.IOException was unhandled
  Message=Cannot locate resource 'app.xaml'.
  Source=PresentationFramework
  StackTrace:
       at MS.Internal.AppModel.ResourcePart.GetStreamCore(FileMode mode, FileAccess access)
       at System.IO.Packaging.PackagePart.GetStream(FileMode mode, FileAccess access)
       at System.IO.Packaging.PackagePart.GetStream()
       at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
       at ESPS3.ServerSchemaUtility.App.InitializeComponent() in e:\ESP3.0\InternalTools\ServerSchemaUtility\ServerSchemaUtility\App.xaml:line 1
       at ESPS3.ServerSchemaUtility.App.Main() in E:\ESP3.0\InternalTools\ServerSchemaUtility\ServerSchemaUtility\obj\x86\Debug\App.g.cs:line 0
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: 
Run Code Online (Sandbox Code Playgroud)

.net c# wpf visual-studio-2010

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

具有.net核心/代码的项目特定Nuget.config

通常,我们从我们的Nuget.config获取,users\[loggedinuser\AppData\Roaming\Nuget但我们有一个特定项目的情况,我们需要使用不同的项目特定配置文件.在这种情况下,我在哪里放置配置文件?

我正在使用.net核心SDK 1.0.4和.net代码.

构建脚本执行此操作:

cd src\SFMC.Adapter.Service
dotnet restore
dotnet build
Run Code Online (Sandbox Code Playgroud)

我可以传入一个参数dotnet restore来指示配置的位置吗?

nuget nuget-package-restore .net-core

4
推荐指数
3
解决办法
6061
查看次数

是否可以将Javascript UI元素添加到100%elm应用程序中?

我有一个工作正常的榆树应用程序.它有一个我们使用标准elm UI功能代码构建的导航栏.有人看到我的应用程序,并说你应该使用我们的标准JavaScript工具栏UI组件.是否可以将Javascript UI组件嵌入到100%原生ELM应用程序中?

注意,我们已经使用ports调用一些本机JavaScript函数.我想知道是否可以使用相同的概念来嵌入UI组件,但由于ELM有自己的内部渲染,这会有问题吗?

javascript interop elm

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

在同一台机器上运行Elm 0.18和0.19

我有一台Mac,并且在/ usr / local / bin中安装了Elm 0.18。

这很好,因为我在项目中使用了Elm 0.18。

现在我负责用户elm 0.19的项目。

我的机器上可能同时有0.18和0.19。

例如

工作区/项目1使用榆木0.18工作区/项目2使用榆木0.19

无论我在哪里运行elm --version都报告0.18,即使在将elm依赖项定义为0.19的项目目录中也是如此。

macos installation elm elm-0.18

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