标签: performance

加入标量函数的结果导致的性能问题?

在以下示例中,仅使用一个 SQL 查询的第一个版本的性能非常差。问题是最后一次加入。

当我将左侧的结果存储到一个临时表中并加入它时,它的运行速度大约快了 50 倍。

它旨在将其转换为 Oracle,因此我尽量避免使用临时表。

任何解释,为什么第一个查询表现如此糟糕或暗示改进它?

Declare @HO int = 2866;
Declare @Dtz int = 35;

---- version 1 takes about 60 seconds
With ratings as
(
    select
        ROW_NUMBER() Over ( ORDER BY SEDate) lfd, 
        SEDate, 
        BBCode 
    from  PPV
        join BB on BBRefnr = SEBBRefnr
    where SEHORefnr = @HORefnr 
    and SEBBRefnr > 0
)
Select
    SEDATE,
    BBCODE,
    Code,
    DTRefnr
FROM (  
Select 
    l.SEDate,
    l.BBCode,
    dbo.GetCode(@Dtz, l.BBCode) Code
from ratings l left join ratings r on l.lfd = …
Run Code Online (Sandbox Code Playgroud)

performance sql-server-2008 temporary-tables

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

在多对多关系的连接表中添加额外列的利弊

我进行了搜索,但没有找到有关此主题的任何讨论。在连接表上创建许多额外的列有什么优点和缺点吗?因为我们加入了 3 个表,它会影响数据检索的速度吗?

就我而言,它可能会慢一点,但这是必要的,否则我们如何保存有关多对多关系的额外数据。或者还有其他我不知道的方式吗?

performance database-design database-agnostic

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

Sql Server 资源调控器 - 跟踪 IO

我知道我可以使用性能计数器来跟踪资源调控器 CPU 和内存使用情况。是否可以跟踪每个工作负载组的 I/O 使用情况?我没有看到任何具体的或任何推荐的做法。

performance sql-server

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

更新具有数百万条记录的表时性能下降

我想更新表(我是 20-30 ),每个表都有数百万条记录。

问题是更新过程花费了太多时间,而且那时 CPU 使用率也很高。我想以一种在处理数据时不能使用太多 CPU 的方式来做。如果处理时间增加,那么这对我来说不是问题,但它应该使用有限的 CPU 资源来处理(更新)表。我使用 PostgreSQL 作为数据库,服务器操作系统是 Linux。

我的示例查询可以是这样的

UPDATE TEMP 
SET CUSTOMERNAME = 
  ( select customername from user where user.customerid = temp.customerid );
Run Code Online (Sandbox Code Playgroud)

postgresql performance update query-performance

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

SQL代码性能

  1. 根据执行计划,你知道这个sql代码是否有效的衡量标准是什么?

  2. 根据执行计划如何知道这个sql代码是否高效?

图片1


图2


图3

SELECT [CustomerID], [CompanyName], [City], [Region]
FROM [Northwind].[dbo].[Customers] 
WHERE [Country] = 'Germany'
ORDER BY [CompanyName]

SELECT [CustomerID], [CompanyName], [City], [Region]
FROM [Northwind].[dbo].[Customers] 
WHERE [Country] = 'Germany'
Run Code Online (Sandbox Code Playgroud)

performance index sql-server-2008 execution-plan query-performance

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

我的设置的硬盘配置

我有一个相当大的事务数据库 (100GB),有很多用户。数据库访问完全通过存储过程进行,这些过程大量使用临时表、表变量、游标和其他有趣的东西。

我正在一个新盒子上试用它以提高性能。新盒子有 5 个独立的物理硬盘。我正在努力想出一个最佳设置(主要是虽然无知,但我通常是 ac# dev)。到目前为止,我得到了以下信息:

Drive C: OS, SQL install, TempDB log
Drive D: Database data
Drive E: Database log
Drive F: TempDB data
Drive G: Databases indexes
Run Code Online (Sandbox Code Playgroud)

我走的是正确的道路吗?有什么明显的错误吗?

performance sql-server-2005 sql-server hardware

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

如何优化这个查询?

询问:

Select * 
from `t_event` 
where `create_user_id`=7 
and (`event_create_date`)=('2012-12-18 00:00:00')
and `event_type_cd`=11
and `domain_id` =602
and `job_id` =1
limit 1
Run Code Online (Sandbox Code Playgroud)

表结构:

mysql> show create table t_event\G
*************************** 1. row ***************************
       Table: t_event
Create Table: CREATE TABLE `t_event` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `create_user_id` int(11) DEFAULT NULL,
  `event_create_date` date DEFAULT NULL,
  `event_type_cd` int(11) NOT NULL,
  `event_desc` varchar(512) NOT NULL,
  `IsGlobalEvent` int(2) DEFAULT NULL,
  `event_start_date` datetime NOT NULL,
  `event_end_date` datetime NOT NULL,
  `job_id` int(11) DEFAULT NULL,
  `domain_id` int(11) NOT NULL,
  PRIMARY …
Run Code Online (Sandbox Code Playgroud)

mysql performance index-tuning query-performance

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

大表上的查询性能调优

我有下表交易。该表如下所示:

CREATE TABLE [dbo].[Transactions](
[TransactionID] [bigint] IDENTITY(1,10) NOT NULL,
[PlayerID] [bigint] NOT NULL,
[BalanceTransactionTypeID] [int] NOT NULL,
[BalanceTransactionSubTypeID] [int] NULL,
[PointDelta] [money] NULL,
[TransactionDate] [datetime] NOT NULL,
Run Code Online (Sandbox Code Playgroud)

该表包含以下约束和索引。

CONSTRAINT [PK_Transactions] PRIMARY KEY CLUSTERED 
(
[TransactionID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,     
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

CREATE NONCLUSTERED INDEX [IX_Transactions_PlayerID] ON [dbo].    
[Transactions]
(
[PlayerID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF,     
DROP_EXISTING = OFF, …
Run Code Online (Sandbox Code Playgroud)

performance index-tuning sql-server-2012 query-performance

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

SQL Server xml 性能

我有一个 21 列的表。大多数是数字,其余的是nvarchar

我需要添加 4 列,这些列将包含每行的 XML 数据。每行的 XML 数据可以是 200 到 2,000 行。

问题是:

  • 将 XML 类型的列添加到同一个表是否会改变查询该表的速度?

  • 当我将 xml 类型的列添加到另一个表并在执行查询时连接两个表时,有什么性能优势?

  • 对 XML 数据进行编码以缩小它并在应用程序中对其进行解码是否更好?

performance xml sql-server sql-server-2008-r2

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

如何判断 autovacuum 需要多长时间来清理 postgres 表?

系统表pg_stat_all_tables记录 autovacuum 守护进程最后一次清理表的时间。

我注意到一些性能问题与数据库中较大的表之一被清理之间可能存在关联。然而,由于我不知道吸尘过程的持续时间,所以我不能 100% 确定。

如何查明在任何给定的表上自动清理花费了多长时间?

postgresql performance

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