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-10820

JohnLBevan's questions

Martin Hope
JohnLBevan
Asked: 2018-11-22 02:46:18 +0800 CST

是否有任何缓存机制用于非持久计算列?

  • 1

SQL Server 是否会缓存非持久化计算列的结果以便可以重复使用而不会产生重新计算的成本?

附加上下文 我一直建议如果使用计算列,你应该使用 PERSISTED 选项,除非你期望插入/更新频率高于读取频率,或者你需要比读取更好的插入/更新性能数据(即因为计算成本必须在其中一个或另一个上产生,所以决定实际上是你想支付该成本的地方)。

还考虑了计算数据的额外存储,但通常这可以忽略不计且便宜,因此无需过多考虑。

但是,我想检查我的建议是否完全准确,因为 SQL 可能更智能……即一旦 SQL 计算出一个计算列,它就可以将这个值记录在内存中,这样它就不必在后续的计算中重新计算该值查询。SQL 可以在缓存值上有一个时间戳,在基础记录数据上有另一个时间戳,以说明自计算值计算以来该记录是否已更改,以确定缓存值是否仍然有效。

是否有类似的东西/它是否取决于可用资源(例如内存)或其他因素(例如缓存值是否具有超出进程生命周期的 TTL)?我从来没有读过任何暗示这存在的东西,但如果没有在幕后进行一些优化,我会感到惊讶。

sql-server cache
  • 1 个回答
  • 404 Views
Martin Hope
JohnLBevan
Asked: 2018-08-26 01:39:04 +0800 CST

persistent_version_store 表是什么?

  • 6

MS Shipped 表的用途是什么:sys.persistent_version_store?

为什么我想知道

主要是好奇心,部分原因是它可能与等待咬我们的问题有关......

我们正在运行 MS Dynamics 365 for Finance and Operations 的 SaaS 实例。这用于监控性能的工具非常有限。在试图找到一些有意义的东西时,我发现这张表的行数高得离谱 (~75,000,000)。这似乎令人担忧。这可能没问题,但 MS 已将其包含在他们的分析工具中,这意味着这会掩盖图表上的所有其他信息(因为它具有线性比例),使图表变得毫无意义。我想了解这个表是什么,这样我就可以确定它是否需要调查,或者将它包含在监控工具中是否只是糟糕的设计。

为什么不阅读文档

因为它是一个 MS 表,所以应该在某处记录下来。但是,搜索persistent_version_store给出了 1 个结果,而且是中文的。搜索Persistence Version Store效果更好;但不清楚这是否是同一件事/关于它是什么的文档不多;只有如何解决达到最大尺寸的问题。

azure-sql-database system-tables
  • 2 个回答
  • 1080 Views
Martin Hope
JohnLBevan
Asked: 2016-10-05 07:11:16 +0800 CST

查找通过 IP 连接的会话

  • 4

无论如何要查看正在连接哪些地址连接?

更多信息:

我反复发现人们使用 IP 而不是 DNS 名称设置连接字符串,并且使用 SQL2012 及更高版本,通过服务器名称连接到实例而不包括实例名称(即,它位于端口 1433 上)。我想对此进行审核,以便在使用不合规的连接字符串连接的几个小时内,我可以收到警报,并迅速找到罪魁祸首并解决问题;而不是等待基础设施的变化(例如,我们移动到非标准端口,或切换到不同 IP 上的不同主机,同时保持相同的底层 DNS 条目)由于不合规的配置而导致更严重的意外.

sql-server sql-server-2008-r2
  • 3 个回答
  • 21885 Views
Martin Hope
JohnLBevan
Asked: 2016-02-24 08:05:58 +0800 CST

什么是数据虚拟化?

  • 5

我刚刚被问到我们公司是否应该考虑Data Virtualization我们的测试环境。好处如下:

  • 敏感数据筛选
  • 在我们的测试环境中快速刷新数据
  • DR 和 BI 场景的潜在好处

但是我只找到了营销信息;没什么技术。据我所知,有两种方法:

  • 生产数据库上的服务层将您从数据模型中抽象出来(可能会导致该新层呈现不同的数据模型)。
  • 一种自动化数据恢复和后续操作的工具,可供非技术用户使用,并且比使用数据库备份和 SQL 脚本更快。

在没有看到任何技术信息的情况下,这对我来说是蛇油的味道;但我想理解它而不是一发不可收拾。


关键字:[数据即服务] [数据虚拟化] [数据虚拟化] [delphix] [denodo]

backup replication
  • 1 个回答
  • 540 Views
Martin Hope
JohnLBevan
Asked: 2015-11-13 05:46:31 +0800 CST

停止 SQL Server 的正确方法(通过自动化)

  • 4

问题

  • Start-Service使用 PowerShell和Stop-Service命令启动和停止 SQL 服务是否安全?
  • 如果没有,是否有推荐的方法来通过自动化启动和停止 SQL 的服务?

附加信息

我们正在创建脚本以在维护窗口之前彻底关闭我们的系统,然后在之后将它们恢复。我的意思是它停止应用程序的服务,然后停止数据库服务(即按依赖顺序),将所有设置为禁用,以便基础架构团队可以应用 Windows 更新/执行任何工作,根据需要安全地重新启动服务器,然后再运行以正确(依赖关系感知)顺序使系统备份的脚本。

我们的 DBA 提到停止服务的正确方法是通过 SQL 的配置管理器;暗示这与仅使用services.msc(或用于自动化,powershell's stop-service/ command line's sc \\someServer stop someService.

  • 本文顶部的注释暗示了类似的内容:https ://technet.microsoft.com/en-us/library/ms175516(v=sql.105).aspx
  • 本文指出 SQL Server 配置管理器对于某些功能有一些优势:https ://msdn.microsoft.com/en-us/library/ms174212.aspx

但是,我无法找到任何明确说明通过常规方式启动/停止服务是不正确的,或者 SQL 配置管理器在简单启动和停止服务方面提供的额外保护/功能。

sql-server sql-server-2008-r2
  • 3 个回答
  • 3720 Views
Martin Hope
JohnLBevan
Asked: 2015-09-23 07:56:39 +0800 CST

阻塞 SPID 具有零磁盘 IO 和零 CPU 时间

  • 1

运行 sp_who2 并跟踪 BlkBy 直到阻塞的根本原因,返回一个 CPUTime 和 DiskIO 值为 0 的 SPID;但它阻止了其他 4 个 SPID。

我对这怎么可能感到困惑;特别是 CPUTime 看起来很奇怪,因为为了获得锁,您必须花费一些时间来请求资源/请求锁本身。
CPUTime 以毫秒为单位,因此虽然资源的请求和锁定可能发生得足够快以在此处具有向下舍入的值,但这有点令人惊讶。

此外,这些 SPIDS 有时已经存在了几分钟;但似乎除了阻止原因外什么也没做。

问题

SPID 如何在 CPU 时间为零的情况下导致阻塞?

我问是因为我怀疑我对 CPU 时间统计信息的理解有所欠缺。如果有人可以建议采取明智的步骤来帮助调查此类问题,那也很有用。

sql-server blocking
  • 1 个回答
  • 337 Views
Martin Hope
JohnLBevan
Asked: 2014-07-23 10:43:28 +0800 CST

检查相关表中数据的性能

  • 1

注意:这个问题纯粹是学术性的/有助于提高我对 SQL Server 性能的理解。

给定一个与一个或多个其他表相关的主表,您将如何确定查询该主表以获取记录的最佳方法,其中包括相关表中记录存在的指示符?

例如,假设我们有一个 Person 表,想要获取所有人的列表以及他们是否有孩子的指标(在此示例中,Person 可以作为相关表重用):

create table Person
(
    Id bigint not null constraint pk_Person primary key clustered
    , ParentId bigint null constraint fk_Person_Parent foreign key references Person(Id)
    , FirstName nvarchar(256) not null
    , LastName nvarchar(256) not null
)

我们可以运行以下任何查询来检查相关子项的存在:

--variables for restricting our result set, just to keep things interesting
declare @LastName nvarchar(256) = 'Be%'
, @FirstName nvarchar(256) = null

示例 1

--  fairly straight forward, but requires grouping to account for the 
--  potential of a parent having multiple kids (which I don't care about here)
--  which could be adding some inefficiency.
select parent.Id
, parent.FirstName
, parent.LastName
, case when max(child.Id) is null then 0 else 1 end HasChildren
from Person parent
left outer join Person child --1:n
on child.ParentId = parent.Id
where (@LastName is null or parent.LastName like @LastName)
and (@FirstName is null or parent.FirstName like @FirstName)
group by parent.Id, parent.FirstName, parent.LastName --resolve 1:n

示例 2

--  avoid the need to group the results by first getting 
--  a single child per parent.
--  may be inefficient because we get children for all parents
--  even if we filter for only a few parents.
select parent.Id
, parent.FirstName
, parent.LastName 
, coalesce(child.hasChildren, 0) HasChildren
from Person parent
left outer join --1:? (0 or 1)
(
    select distinct parentId, 1 hasChildren
    from Person 
    where parentId is not null --not sure if this adds value
) child 
on child.ParentId = parent.Id
where (@LastName is null or LastName like @LastName)
and (@FirstName is null or FirstName like @FirstName)
--group by removed since we're 1:?

示例 3

--  same as #2 except we limit the child results to those 
--  related to the parents we're interested in / having stored
--  them in a CTE to avoid querying for the same parent data 
--  in the inner query and outer query.
--  Getting a bit silly now, but could overcome some inefficienies?
;with parentCTE as (
    select Id, FirstName, LastName 
    from person 
    where (@LastName is null or LastName like @LastName)
    and (@FirstName is null or FirstName like @FirstName)
)
select parentCTE.Id
, parentCTE.FirstName
, parentCTE.LastName 
, coalesce(child.hasChildren, 0) HasChildren
from parentCTE
left outer join --1:? (0 or 1)
(
    select distinct parentId, 1 hasChildren
    from Person 
    where parentId in --reduce the amount of data we return here based on the records we're interested in
    (
        select Id
        from parentCTE
    )
) child 
on child.ParentId = parentCTE.Id

例子 4

--  back to a simple one; just check for children on our parents 
--  but this time having brought back the full parent set.
--  may be inefficient because we're querying the table once per 
--  matching parent to check for children.
select parent.Id
, parent.FirstName
, parent.LastName
, coalesce((select top 1 1 from Person child where child.parentId = parent.Id),0) HasChildren
from Person parent
where (@LastName is null or LastName like @LastName)
and (@FirstName is null or FirstName like @FirstName)

我正在寻找有关如何更好地理解在这种情况下所涉及的权衡取舍的信息,而不是简单example 3的最好的。也欢迎指出可以帮助我理解的文章。

相关 SQL 小提琴:http ://sqlfiddle.com/#!6/edc17/3

sql-server performance
  • 1 个回答
  • 550 Views
Martin Hope
JohnLBevan
Asked: 2012-10-20 14:24:20 +0800 CST

要复制的 LOB 数据 (%1) 的长度超过了配置的最大值 %2

  • 1

我们最近在对表启用复制后不久就遇到了这个错误。

Length of LOB data (%1) to be replicated exceeds configured maximum %2

我已经找到了解决这个问题的方法:

  • https://stackoverflow.com/questions/925824/when-insert-length-of-lob-data-to-be-replicated-exceeds-configured-maximum-65536
  • http://sqlmusings.wordpress.com/2008/09/22/issue-length-of-lob-data-to-be-replicated-exceeds-configured-maximum-65536/

然而,没有解释这个配置最初的用途。如果我们关闭 LOB 大小限制,会有什么副作用——我们是否会在未来面临更多问题?

提前致谢。

sql-server replication
  • 1 个回答
  • 2108 Views
Martin Hope
JohnLBevan
Asked: 2012-08-14 04:04:56 +0800 CST

SQL Server 复制 :: 专用分销商硬件要求

  • 4

关于专用分销商服务器的硬件要求,有谁知道任何经验法则(或更好的)?即基于估计指标(例如订阅者、发布者、表的数量、平均表大小、平均更新频率等)是否有某种方法可以计算分发者的最低 RAM/CPU 要求?

更多信息

尽管发布者和订阅者目前是 2008 和 2008 R2 的混合版本,但我们可能会使用 SQL Server 2012 作为分发者。

分发服务器将被集群以确保高可用性。我们将选择主动/主动以优化资源利用,将一半的发布者发送给一个,另一半发送给另一个,但将确保集群规范中的每个节点都满足最低规范,以便一个节点出现故障时解决方案还是可以应付的。

背景信息

我们一直在使用复制来允许我们的国际 BI 系统从我们的事务系统中提取数据而不影响性能,而 BI 服务器托管分发器。展望未来,我们希望将此分布转移到单独的服务器上,以便我们可以将复制作为服务提供给 BI 团队和其他需要此功能的团队(即来自不同国家的本地 BI 团队和我们的内部监控系统)。我们希望看到被复制的表数量以及订阅者和发布者的数量会增加(因为我们也将包括我们的非生产系统)。

提前致谢。

sql-server replication
  • 1 个回答
  • 1996 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