标签: query-optimization

Symfony:如何优化Doctrine查询?

我想知道如何优化我的Doctrine查询,因​​为我的一些查询太长了.

我不想特别针对我的查询方法,但是我可以将常用方法应用于所有请求,因为我找不到有关此方法的信息.

doctrine symfony1 query-optimization

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

Select Distinct如何在SQL中的主键上工作?

SQL Optimizer如何处理主键上的Select Distinct?例如

员工表 - (EmpId int primary key,EmpName)

select distinct EmpId from Employee.

考虑到EmpId已经不同,优化器会拒绝不同的关键字吗?

sql optimization distinct query-optimization

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

循环大量的记录

我有一个位于网络中的postgre服务器,我正在使用数据库.我需要查看大量记录(1mil +),每次选择都需要时间.

这是我目前的方法:

DataSet ds = new psqlWork().getDataSet("SELECT * FROM z_sitemap_links"); 
DataTable dt = ds.Tables[0]; 
Parallel.ForEach(dt.AsEnumerable(), dr => 
{ 
    new Sitemap().runSitemap(dr[1].ToString(), counter); 
    counter++; 
}); 
Run Code Online (Sandbox Code Playgroud)

但是当数据库大小增加时,这种方法(在我看来)不会那么有效.你能建议一个更好的方法吗?也许把数据拉成块来处理; 虽然我现在不知道如何处理这个问题.

c# postgresql performance query-optimization winforms

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

发生什么事情弄乱了我的GROUP BY查询?

这是我的查询:

select top 60 * from ABC_Sessions (nolock)   
where EntryDate > '06-22-2012 23:59:59'
GROUP BY TargetedID
Run Code Online (Sandbox Code Playgroud)

然后它给了我这个错误:

消息8120,级别16,状态1,行1列"BI_Sessions.SessionID"在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中.

sql-server query-optimization

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

如何在Oracle中查找存储过程的成本并对其进行优化

有没有人让我知道是否有任何方法可以找出Oracle中存储过程的成本?如果没有直接的方式,我想知道任何替代品.
我发现成本的方式是对存储过程中使用的所有查询进行自动跟踪,然后根据查询执行的频率估算proc成本.
除此之外,我想建议优化我的存储过程,尤其是下面给出的查询.
过程的逻辑:
下面是在我的存储过程中用作游标的动态sql查询.此游标在循环内打开并获取.我获取信息并将它们放入varray中,计算数据然后将其插入表中.
我的目标是找出proc的成本以及优化sp.

SELECT DISTINCT acct_no    
FROM raw
WHERE 1=1
AND code = ''' || code ||
''' AND qty       < 0  
AND acct_no 
IN (SELECT acct_no FROM ' || table_name || ' WHERE counter = 
(SELECT MAX(counter) FROM ' || table_name || '))
Run Code Online (Sandbox Code Playgroud)

oracle performance plsql stored-procedures query-optimization

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

在mysql中使用datediff()优化查询

我有一个如下查询

select 
id,name,baseid,member_card_type,membercard_num,last_draw,counter 
from details_dest
where datediff(curdate(),basedate)<100;
Run Code Online (Sandbox Code Playgroud)

我已经使用了解释,发现它正在使用基于onate的索引,我认为date_diff是问题所在

所以请建议我有没有其他方法来执行它没有任何功能

请根据表现告诉我哪个更好的datediff()或to_days()

我正在使用mysql 5.5

mysql optimization query-optimization database-administration

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

应在此处索引哪些键以使此查询最佳

我有一个如下所示的查询:

SELECT * from foo
  WHERE days >= DATEDIFF(CURDATE(), last_day)
Run Code Online (Sandbox Code Playgroud)

在这种情况下,days是一个INT. last_day是一个DATE专栏.

所以我在这里需要两个单独的索引dayslast_day

mysql indexing datetime query-optimization

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

使用SQL Server选择非空列

我使用的是SQL Server 2012.我有一个包含90列的表.我试图只选择包含数据的列.搜索后,我使用以下程序:

1-使用一个选择查询获取所有列数

2-将结果表旋转到Temp表中

3-创建选择查询

4-执行此查询

这是我使用的查询:

DECLARE @strTablename  varchar(100) = 'dbo.MyTable'
DECLARE @strQuery  varchar(max) = ''
DECLARE @strSecondQuery  varchar(max) = 'SELECT '
DECLARE @strUnPivot as varchar(max) = ' UNPIVOT ([Count] for [Column] IN ('

CREATE TABLE ##tblTemp([Column] varchar(50), [Count]  Int)

SELECT @strQuery = ISNULL(@strQuery,'') + 'Count([' + name + ']) as [' + name + ']  ,' from sys.columns where object_id = object_id(@strTablename) and is_nullable = 1
SELECT @strUnPivot = ISNULL(@strUnPivot,'') + '[' + name + '] ,' …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server query-optimization sql-server-2012

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

如何以更好的方式编写查询以在两个日期之间进行检索?

这是我尝试的SQL查询

SELECT 
    TransactionNumber,Time
FROM 
    [HQMatajer].[dbo].[Transaction]
WHERE 
    Time>='2015-01-01' and Time<='2015-12-31'
Run Code Online (Sandbox Code Playgroud)

总记录返回280万.这需要10秒钟.

我创建了一个索引Time,并TransactionNumber为好.

还有什么我需要做的比这更快的行?

谢谢

sql sql-server query-optimization

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

选择主键:为什么postgres更喜欢顺序扫描和索引扫描

我有下表

create table log
(
    id bigint default nextval('log_id_seq'::regclass) not null
        constraint log_pkey
            primary key,
    level integer,
    category varchar(255),
    log_time timestamp,
    prefix text,
    message text
);
Run Code Online (Sandbox Code Playgroud)

它包含300万行.

我正在比较以下查询:

EXPLAIN SELECT id
        FROM log
        WHERE log_time < now() - INTERVAL '3 month'
        LIMIT 100000
Run Code Online (Sandbox Code Playgroud)

产生以下计划:

Limit  (cost=0.00..19498.87 rows=100000 width=8)
  ->  Seq Scan on log  (cost=0.00..422740.48 rows=2168025 width=8)
        Filter: (log_time < (now() - '3 mons'::interval))
Run Code Online (Sandbox Code Playgroud)

并添加了与ORDER BY id指令相同的查询:

EXPLAIN SELECT id
        FROM log
        WHERE log_time < now() - INTERVAL '3 month'
        ORDER …
Run Code Online (Sandbox Code Playgroud)

postgresql query-optimization

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