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

Kevin3NF's questions

Martin Hope
Kevin3NF
Asked: 2017-06-15 09:48:05 +0800 CST

T-SQL 优化

  • 3

如果答案是“否”,我可以接受......

我正在查看是否可以对其进行任何优化...它是更大的存储过程的一部分。CGCode是 varchar(50),Year并且Month是smallint,FEIN是char(9)

select max(id)
from Table
where 1=1
    and cgcode = 123
    and datefromparts(cast(year as char(4)),cast(month as char(2)),'01') < getdate()
    and totalcount > 0 
group by cgcode, year, month, fein

实际执行计划的逻辑读取:1,566,473

源表原始数据3200万+条记录

估计行数:640K,实际 55K,在 Group By 开始之前

隐式转换警告Year/Month/CGCode(以 形式出现bigint)

执行时间大约 7.5 秒,执行非聚集索引查找:

在此处输入图像描述

最终结果集是 114 行(为此CGCode我们测试......其他人有所不同)

Prod 中的性能在明显优于 Dev box 的硬件上大致相同。随着时间的推移,这只会变得更糟,因为它会提取早于当前月份的所有内容,以在 UI 中填充历史图表。

我还可以提供哪些其他信息?

粘贴计划

当前使用的索引:

CREATE NONCLUSTERED INDEX [COIX_Table_TotalCount] ON [dbo].[Table]
(
    [TotalCount] ASC
)
INCLUDE (   [ID],
    [CGCode],
    [Year],
    [Month],
    [FEIN]) 
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, 
        ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO

CGCode限制数据最多...281 个值。 year只有 3-4 年的数据价值,month当然只有 12 个选项。 TotalCount是bigint, 3200 万条记录中的 17K 个不同的值。不知道TotalCount专栏的目的是什么。

sql-server sql-server-2014
  • 3 个回答
  • 161 Views
Martin Hope
Kevin3NF
Asked: 2017-03-21 09:39:08 +0800 CST

SQL Server 中的 MAX NUMA/“亲和力”

  • 3

现在或可能正在开发一种方法来告诉 SQL Server 留在一个 NUMA 节点内,无论是在服务器范围内还是在查询级别?基本上与 MAXDOP 功能相同,但 MAXNUMA?

现在,除非我完全错过它,否则当查询并行时,它可以使用它可以看到的所有处理器。只是想知道是否有办法将其限制为一个或两个或“x”个 NUMA 节点。我可能真的不希望我的查询分布在 80 多个逻辑处理器上 :)

这主要是一个好奇心,而不是一个“帮我打破我坏掉的东西”的问题。

sql-server numa
  • 2 个回答
  • 596 Views
Martin Hope
Kevin3NF
Asked: 2017-01-26 07:14:26 +0800 CST

如何跟踪 SSIS 内存和 CPU 性能?

  • 8

我可能错过了这个难题的一些部分,但这就是我所拥有的:

所有这些都是由一家外部公司为我们编写的。

有一个 .Net 应用程序在服务器 A 上作为服务运行。

在该应用程序内部,正在调用 SSIS 包。DTEXEC?

这些包(总共 37 个)连接到两个不同的 SQL Server (B&C),提取一些数据,对其执行计算,然后将结果插入到服务器 C 上的数据库中。

在 37 个包中,只有少数是我的问题区域。我看过细节,里面有很多很多的任务。

.Net 应用程序所在的服务器 A 上没有 SQL Server 组件(数据库引擎或 SSIS),因此这一切都在应用程序内部进行。.Net 在盒子上使用 1 个 20 核的 NUMA 节点,1TB RAM。

这个应用程序是 3.0 版本,添加了新功能。2.4(以前的版本)在相同的硬件上运行良好。

所有这些背景都问这个:

有什么方法可以在 .Net 应用程序内的 SSIS 包中找到性能不佳的 T-SQL?还是我在等式中遗漏了一些非常明显的东西?
归结为:“计算/T-SQL 实际在哪里运行”(A 与 B/C),如果在 .Net 空间内,我如何跟踪/调整它们?

Profilersp_whoisactive等都指向 SQL 实例。这一切都发生在 .Net 应用程序内部,除了从 B 中选择数据并在计算后插入到 C 中的小例外。所有网络、磁盘等都运行良好。如果存在这种情况,我正在寻找一种可以进入.Net SSIS 的调优工具。

这绝对是一个调优问题,但 Profilersp_whoisactive等显示的时间可能不超过 3 秒,最远低于 1/2 秒或更短。我对.Net知之甚少,无法知道这些T-SQL任务是否真的像我认为的那样在该内存空间内的服务器A上运行,或者它们是否太多以至于它们全部聚合成“太长” ”。

我希望我被允许在 SSIS 中启用大量日志记录,但这是我不允许触摸的供应商代码的一部分,即使用于日志记录 :(

sql-server performance
  • 2 个回答
  • 3623 Views
Martin Hope
Kevin3NF
Asked: 2016-08-18 07:40:36 +0800 CST

SQLPackage.exe 不接受更改

  • 0

我正在尝试从 CMD 行获取用于模式比较的 SQLPackage。必须将主数据库与 300 个实时数据库进行比较。所有 2014 年的 SQL 都没有注册为数据层应用程序。PowerShell 和 3rd 方工具目前不是一个选项。

我在这里的第一个答案中遵循了脚本: https ://stackoverflow.com/questions/20673516/command-line-api-for-schema-compare-in-ssdt-sql-server-database-project

我可以从我的源和目标成功地创建 .DACPAC 文件。

如果我将一些对象(1 个表,3 个视图)添加到“Test_B”数据库,当我将主对象与数据库本身或生成的 .dacpac 进行比较时,比较脚本不会显示这些差异。但是,如果我从 VS 运行 SSDT 模式比较,它会选择它们并将创建一个带有预期 DROP 语句的 .sql 脚本。

所以问题是:我在 Visual Studio/SSDT 做对的 cmd 行做错了什么?缺少参数?事情的顺序不对?

#Compare DACPACs

sqlpackage.exe /a:Script /sf:C:\Users\hillke4\Documents\SQLScripts\DACPACS\ACACalculationDB.JTA.v7.master.dacpac /tf:C:\Users\hillke4\Documents\SQLScripts\DACPACS\ACACalculationDB.JTA.v7.Test_B.dacpac /tdn:ACACalculationDB.JTA.v7.Test_B /op:C:\Users\hillke4\Documents\SQLScripts\DACPACS\Deltas\ACACalculationDB.JTA.v7.Test_B.sql


#Compare master dacpac to database

sqlpackage.exe /a:Script /sf:C:\Users\hillke4\Documents\SQLScripts\DACPACS\ACACalculationDB.JTA.v7.master.dacpac /tsn:US1213113W1\SQL2014 /tdn:ACACalculationDB.JTA.v7.Test_B /op:C:\Users\hillke4\Documents\SQLScripts\DACPACS\Deltas\ACACalculationDB.JTA.v7.Test_B.sql
sql-server ssdt
  • 1 个回答
  • 1824 Views
Martin Hope
Kevin3NF
Asked: 2016-04-27 06:29:52 +0800 CST

sys.dm_sql_referencing_entities 不返回结果

  • 1

毫无疑问,这是语法或拼写错误......但是当我查询父表的 sys.dm_sql_referencing_entities 时,我得到零结果。没有错误,只是没有结果。

USE [source];
GO
SELECT *
FROM sys.dm_sql_referencing_entities ('[Test].[USERS]', 'OBJECT');
GO

当我从 SSMS 查看依赖项时,我得到

SSMS 依赖项

我以前从未使用过它,所以也许我误解了它是如何工作的或者它应该返回什么?我也尝试了 SUBSCRIPTIONS 表,同样的结果......没有。

sql-server sql-server-2014
  • 2 个回答
  • 999 Views
Martin Hope
Kevin3NF
Asked: 2015-12-02 11:57:13 +0800 CST

SQL Server 的 OPENXML 问题

  • 3

我是 OPENXML 的新手,并且有 90% 的我想做的工作......坚持这一点:

<ReportHost name="411.114.42.42">
  <HostProperties>
    <tag name="HOST_END">Wed Nov 11 20:48:43 2015</tag>
    <tag name="LastAuthenticatedResults">8675309</tag>
    <tag name="Credentialed_Scan">true</tag>
    <tag name="policy-used">AWT v6</tag>
    <tag name="ssh-auth-meth">MyPassword</tag>
    <tag name="ssh-login-used">MyLogin</tag>
    <tag name="local-checks-proto">ssh</tag>
    <tag name="host-ip">411.114.42.42</tag>
    <tag name="HOST_START">Wed Nov 11 20:00:01 2015</tag>
  </HostProperties>
</ReportHost>

我想要的结果:

Wed Nov 11 20:48:43 2015
8675309
TRUE
AWT v6
MyPassword
MyLogin
ssh
411.114.42.42
Wed Nov 11 20:00:01 2015

我能够获取名称值(“Host_end”等),但不能获取内容。

我的查询:

Select   * 
from OPENXML (@hdoc,'/ReportHost/HostProperties/tag',1)
WITH (
    name varchar (500)
     )

如果可能的话,我想坚持使用 OPENXML,因为我刚刚花了一天时间学习它并进入最后一步。

如果我提供了足够的信息,请告诉我。

sql-server xml
  • 2 个回答
  • 304 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