AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-5745

Chris J's questions

Martin Hope
Chris J
Asked: 2013-08-07 03:09:33 +0800 CST

SQL 集群中的 TDE

  • 4

我正在研究数据库加密,虽然 TDE 似乎完全按照它在罐头上所说的那样做,但似乎没有关于如何在 Microsoft 故障转移 SQL 集群中配置它的信息,或者是否有任何关于加密的警告集群环境(除了那些在 MSDN 上列出的环境)。

试图提炼我所拥有的信息(主要来自这里和这里,但来自其他随机谷歌),我认为答案是我什么都不用做,它就可以正常工作。主密钥和证书在主数据库中,DMK 在用户数据库中,因此在故障转移情况下,所有内容都存在于故障转移节点运行的 MDF 文件中(而不是潜伏在注册表中的任何密钥,这将需要同步 twixt 节点)。

问题是没有什么明确说明这一点(或者我完全没能读懂它的句子),所以我只是想澄清一下我没有遗漏一些明显的东西,没有什么特别需要配置的,而且它确实“正常工作”。

sql-server-2008-r2 failover
  • 1 个回答
  • 1187 Views
Martin Hope
Chris J
Asked: 2013-04-03 04:17:56 +0800 CST

外键 - 使用代理或自然键链接?

  • 15

对于表之间的外键是否应该链接到自然键或代理键,是否有最佳实践?我真正找到的唯一讨论(除非缺少我的 google-fu)是Jack Douglas 在这个问题中的回答,他的推理对我来说似乎是合理的。我知道除了规则更改之外的讨论,但这将是在任何情况下都需要考虑的事情。

问的主要原因是我有一个遗留应用程序,它使用带有自然键的 FK,但是开发人员强烈推动转向 OR/M(在我们的例子中是 NHibernate),并且一个 fork 已经产生了一些重大更改,因此我希望使用自然键将它们推回正轨,或者移动旧版应用程序以使用 FK 的代理键。我的直觉说要恢复原来的 FK,但老实说,我不确定这是否真的是正确的道路。

我们的大多数表已经定义了代理键和自然键(尽管唯一约束和 PK),因此在这种情况下,必须添加额外的列对我们来说不是问题。我们使用的是 SQL Server 2008,但我希望这对于任何数据库来说都足够通用。

database-design foreign-key
  • 3 个回答
  • 5413 Views
Martin Hope
Chris J
Asked: 2012-04-07 03:44:50 +0800 CST

sp_ExecuteSQL、性能和表变量

  • 6

有人能够解释我在 SQL Profiler 中看到的一些行为吗?取以下两批:

exec sp_executesql N'
    declare @t table (
        x int
    )

    insert into @t (x) select top 10 number from dbo.gennumbers

    select * from @t
    union
    select * from @t
'

exec sp_executesql N'
    select top 10 number from dbo.gennumbers
    union
    select top 10 number from dbo.gennumbers
'

(这是我正在做的一些重构的简化;实际上,临时表是通过在最终查询中重用的 CTE 填充的,因此通过缓存数据来减少 SQL Server 需要做的重复工作量)。

在此示例中,GenNumbers 只是一个数字表,其中包含仅包含连续数字的单列 - 没什么特别的。

在探查器中,我得到以下结果:

第 1 批,使用临时表:

事件 TextData 读取
SP:StmtCompleted INSERT INTO(...) 27
SP:StmtCompleted SELECT * FROM ... 6
SQL:StmtCompleted exec sp_executesql 170

Batch 2,直接命中:

事件 TextData 读取
SP:StmtCompleted SELECT TOP 10 * ... 6
SQL:StmtCompleted exec sp_executesql 6

我试图理解的是SQL:StmtCompleted. 我期望总读取应该等于批次中发生的所有读取的总和,但是在批次 1 中似乎并非如此 - 事实上,它要高得多。而第 2 批执行单次选择,最终读取 == 实际读取。

执行计划中没有什么明显的东西可以查看额外时间的去向,但也许我没有捕捉到正确的东西 - 有人对实际发生的事情有任何想法吗?我想知道我是否需要担心 SQL Server “给”我额外的 100 次读取,因为这个读取计数是实际读取计数的五到六倍。

我假设这与需要维护有关临时表的信息的 SQL 有关,但不清楚究竟是什么。任何灯棚都是有用的。

sql-server sql-server-2008-r2
  • 1 个回答
  • 2038 Views
Martin Hope
Chris J
Asked: 2012-02-22 05:50:22 +0800 CST

查询的锁摘要

  • 7

SQL Server 是否有任何简单的方法来获取有关给定查询在执行过程中取得了多少(可能还有什么类型)锁的指标?

基本原理......
我正在重写一个相当讨厌的存储过程,它大量使用游标。基于集合的解决方案是可能的,因此我得到了三个版本:原始版本、带表变量的基于集合的版本和完全基于 CTE 的基于集合的版本。我为基于 CTE 的解决方案获得了很好的指标,但由于 CTE 版本创建的查询的大小和复杂性,我对发布它持谨慎态度,直到我对它进行了尽可能多的尽职调查。

现在我意识到 SQL 取出的锁是它认为它需要在给定时间点取出的锁,并且在加载的生产服务器上它可能表现不同,但我希望它能给我一种感觉它会表现得很好。

目前我正在使用探查器并保持事务打开以便我可以运行sp_lock,但想知道我是否错过了 SQL Server 2008 中的一个技巧。

或者,我试图说服自己,探查器在插入表变量时返回大量读取是可以的(对于给定的 okay 值),但我没有说服自己。CTE 解决方案的读取次数是 table-var 版本的一半,而 table-var 版本的高读取计数似乎完全归因于插入。就持续时间而言,CTE 和 table var one 大致相同,执行时间比基于游标的方法快大约 150-200%。

sql-server-2008 locking
  • 2 个回答
  • 363 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve