我们应该使用标志进行软删除还是单独的连接表?哪个更有效率?数据库是SQL Server.
背景资料
前一阵子,我们有一位DB顾问进来查看我们的数据库架构.当我们软删除记录时,我们将更新相应表上的IsDeleted标志.有人建议,不要使用标志,而是将已删除的记录存储在单独的表中,并使用连接,因为这样会更好.我已经把这个建议付诸实践,但至少在表面上,额外的表和连接看起来比使用标志更昂贵.
初步测试
我已经设置了这个测试.
两个表,Example和DeletedExample.我在IsDeleted列上添加了一个非聚集索引.
我做了三次测试,加载了一百万条记录,其中包含以下已删除/未删除的比率:
结果 - 50/50

结果 - 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) 我遇到过这段代码:
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.这是不好的做法吗?
今天我创建了一个新的临时表和一个BCP .fmt文件.我创建了一些测试数据并尝试从命令行运行BCP实用程序:

我从以前的工作中获得了大约20种不同的格式文件和登台表,这是我第一次遇到这个错误.
我该如何解决这个错误?
请注意,我在下面添加了我的解决方案,但是如果你有其他答案,请加入.答案是如此古怪/模糊,我认为它可能会帮助其他人.
我有一个没有问题的存储过程,返回代码是0.在某些情况下,我RAISERROR用户定义的错误(> 50000).在这些情况下,回报是-6.我只是好奇,-6是什么意思?我没有在程序中设置返回代码,因此这个数字是SQL Server(系统)生成的.
我发现这句话:
这些负数是否有任何意义,有点难以辨别.过去是这样的,返回值-1到-99是为系统生成的返回值保留的,而联机丛书为早期版本的SQL Server指定了值-1到-14的含义.但是,适用于SQL 2000的联机丛书对任何此类预留都保持沉默,并不解释-1到-14的含义.
有谁知道这些返回码的"隐藏"含义?
我正在使用SQL Server 2008 R2.
在我的一个WPF项目中,当我打开解决方案并在调试时启动它时出现此错误.如果我重新构建解决方案并再次启动它,则错误消失.
我已经使用以下方法删除了App.xaml中的StartUpUri,为应用程序实现了命令行支持:
我如何摆脱这个恼人的错误?
使用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) 通常,我们从我们的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来指示配置的位置吗?
我有一个工作正常的榆树应用程序.它有一个我们使用标准elm UI功能代码构建的导航栏.有人看到我的应用程序,并说你应该使用我们的标准JavaScript工具栏UI组件.是否可以将Javascript UI组件嵌入到100%原生ELM应用程序中?
注意,我们已经使用ports调用一些本机JavaScript函数.我想知道是否可以使用相同的概念来嵌入UI组件,但由于ELM有自己的内部渲染,这会有问题吗?
我有一台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的项目目录中也是如此。
c# ×2
elm ×2
.net ×1
.net-core ×1
bcp ×1
c#-4.0 ×1
elm-0.18 ×1
indexing ×1
installation ×1
interop ×1
javascript ×1
macos ×1
nuget ×1
return-value ×1
soft-delete ×1
windows ×1
wpf ×1