- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个 SQL,它运行大约需要 2.5 秒。
select SUM(valorlanca0_.VALOR_PREVISTO) as col_0_0_
from CF_VALOR_LANCADO_DETALHADO valorlanca0_
inner join CF_VALOR_LANCADO valorlanca1_ on valorlanca0_.ID_VALOR_LANCADO=valorlanca1_.ID_VALOR_LANCADO
inner join CF_LANCAMENTO lancamento2_ on valorlanca1_.ID_LANCAMENTO=lancamento2_.ID_LANCAMENTO
inner join CF_ADMINISTRACAO administra12_ on lancamento2_.ID_ADMINISTRACAO=administra12_.ID_ADMINISTRACAO
inner join CF_EMPRESA empresa13_ on lancamento2_.ID_EMPRESA=empresa13_.ID_EMPRESA
inner join CF_USUARIO usuario14_ on lancamento2_.ID_USUARIO_CRIOU=usuario14_.ID_USUARIO
left outer join CF_FORMA_PAGAMENTO formapagam9_ on valorlanca1_.ID_FORMA_PAGAMENTO=formapagam9_.ID_FORMA_PAGAMENTO
inner join CF_CONTA conta10_ on valorlanca1_.ID_CONTA=conta10_.ID_CONTA
left outer join CF_FATURA fatura11_ on valorlanca1_.ID_FATURA=fatura11_.ID_FATURA
left outer join CF_CATEGORIA categoria3_ on valorlanca0_.ID_CATEGORIA=categoria3_.ID_CATEGORIA
left outer join CF_CENTRO_CUSTO centrocust4_ on valorlanca0_.ID_CENTRO_CUSTO=centrocust4_.ID_CENTRO_CUSTO
left outer join CF_FAV_FONTE_PAGADORA favfontepa5_ on valorlanca0_.ID_FAV_FONTE_PAGADORA=favfontepa5_.ID_FAV_FONTE_PAGADORA
left outer join CF_CONTA_CONTABIL contaconta6_ on valorlanca0_.ID_CONTA_CONTABIL=contaconta6_.ID_CONTA_CONTABIL
left outer join CF_CONTATO contato7_ on valorlanca0_.ID_CONTATO=contato7_.ID_CONTATO
left outer join CF_MARCA marca8_ on valorlanca0_.ID_MARCA=marca8_.ID_MARCA
where administra12_.ID_ADMINISTRACAO=406 and lancamento2_.TIPO_CONTA=2 and (conta10_.ID_CONTA in (2060, 404, 405, 4291, 406, 410, 4292, 403, 4355, 402, 407)) and conta10_.TIPO<>9 and lancamento2_.TIPO_TRANSACAO=10
and (valorlanca1_.SITUACAO in (1)) and ((valorlanca1_.DATA_PREVISTA<='2015-07-22' and valorlanca1_.SITUACAO=1 or valorlanca1_.DATA_BAIXA<='2015-07-22' and valorlanca1_.SITUACAO=3)
and conta10_.TIPO<>2 or fatura11_.DATA_VENCIMENTO<='2015-07-22' and conta10_.TIPO=2 and valorlanca1_.SITUACAO=1 or valorlanca1_.DATA_BAIXA<='2015-07-22' and conta10_.TIPO=2 and valorlanca1_.SITUACAO=3)
and ((empresa13_.ID_EMPRESA in (422, 3643)) and usuario14_.ID_USUARIO=574 or empresa13_.ID_EMPRESA in (422, 3643))
这是解释命令
1 SIMPLE administra12_ const PRIMARY PRIMARY 8 const 1 Using index
1 SIMPLE empresa13_ range PRIMARY PRIMARY 8 2 Using where; Using index
1 SIMPLE lancamento2_ ref PRIMARY,FKE50FD2D68AC234EC,FKE50FD2D6574FCEF7,FKE50FD2D628D2EAE8,IDXEMPRESA IDXEMPRESA 8 controlese.empresa13_.ID_EMPRESA 225 Using index condition; Using where
1 SIMPLE valorlanca1_ ref PRIMARY,FK49527EEB12DDD0DA,FK49527EEBDDD55138,IDX_VL_IDL,IDX_VL_IVL FK49527EEB12DDD0DA 8 controlese.lancamento2_.ID_LANCAMENTO 1 Using where
1 SIMPLE conta10_ eq_ref PRIMARY PRIMARY 8 controlese.valorlanca1_.ID_CONTA 1 Using where
1 SIMPLE usuario14_ eq_ref PRIMARY PRIMARY 8 controlese.lancamento2_.ID_USUARIO_CRIOU 1 Using index
1 SIMPLE fatura11_ eq_ref PRIMARY PRIMARY 8 controlese.valorlanca1_.ID_FATURA 1 Using where
1 SIMPLE formapagam9_ eq_ref PRIMARY PRIMARY 8 controlese.valorlanca1_.ID_FORMA_PAGAMENTO 1 Using index
1 SIMPLE valorlanca0_ ref FK60A3C74EA9A01AC3,IDX_VLD_IDVL FK60A3C74EA9A01AC3 8 controlese.valorlanca1_.ID_VALOR_LANCADO 1
1 SIMPLE categoria3_ eq_ref PRIMARY PRIMARY 8 controlese.valorlanca0_.ID_CATEGORIA 1 Using index
1 SIMPLE centrocust4_ eq_ref PRIMARY PRIMARY 8 controlese.valorlanca0_.ID_CENTRO_CUSTO 1 Using index
1 SIMPLE favfontepa5_ eq_ref PRIMARY PRIMARY 8 controlese.valorlanca0_.ID_FAV_FONTE_PAGADORA 1 Using index
1 SIMPLE contaconta6_ eq_ref PRIMARY PRIMARY 8 controlese.valorlanca0_.ID_CONTA_CONTABIL 1 Using index
1 SIMPLE contato7_ eq_ref PRIMARY PRIMARY 8 controlese.valorlanca0_.ID_CONTATO 1 Using index
1 SIMPLE marca8_ eq_ref PRIMARY PRIMARY 8 controlese.valorlanca0_.ID_MARCA 1 Using index
最大的表是 CF_VALOR_LANCADO(855m 条记录)和 CF_VALOR_LANCADO_DETALHADO(860m 条记录)。
我可以做些什么来优化我的选择?
最佳答案
那真是一个查询:)
您可以先从 WHERE 中删除未使用的表,如下所示:
select SUM(valorlanca0_.VALOR_PREVISTO) as col_0_0_
from CF_VALOR_LANCADO_DETALHADO valorlanca0_
inner join CF_VALOR_LANCADO valorlanca1_ on valorlanca0_.ID_VALOR_LANCADO=valorlanca1_.ID_VALOR_LANCADO
inner join CF_LANCAMENTO lancamento2_ on valorlanca1_.ID_LANCAMENTO=lancamento2_.ID_LANCAMENTO
inner join CF_ADMINISTRACAO administra12_ on lancamento2_.ID_ADMINISTRACAO=administra12_.ID_ADMINISTRACAO
inner join CF_EMPRESA empresa13_ on lancamento2_.ID_EMPRESA=empresa13_.ID_EMPRESA
inner join CF_USUARIO usuario14_ on lancamento2_.ID_USUARIO_CRIOU=usuario14_.ID_USUARIO
inner join CF_CONTA conta10_ on valorlanca1_.ID_CONTA=conta10_.ID_CONTA
left outer join CF_FATURA fatura11_ on valorlanca1_.ID_FATURA=fatura11_.ID_FATURA
where administra12_.ID_ADMINISTRACAO=406
and lancamento2_.TIPO_CONTA=2
and (conta10_.ID_CONTA in (2060, 404, 405, 4291, 406, 410, 4292, 403, 4355, 402, 407))
and conta10_.TIPO<>9
and lancamento2_.TIPO_TRANSACAO=10
and (valorlanca1_.SITUACAO in (1))
and ((valorlanca1_.DATA_PREVISTA<='2015-07-22' and valorlanca1_.SITUACAO=1 or valorlanca1_.DATA_BAIXA<='2015-07-22' and valorlanca1_.SITUACAO=3) and conta10_.TIPO<>2
or fatura11_.DATA_VENCIMENTO<='2015-07-22' and conta10_.TIPO=2 and valorlanca1_.SITUACAO=1
or valorlanca1_.DATA_BAIXA<='2015-07-22' and conta10_.TIPO=2 and valorlanca1_.SITUACAO=3
)
and ((empresa13_.ID_EMPRESA in (422, 3643)) and usuario14_.ID_USUARIO=574 or empresa13_.ID_EMPRESA in (422, 3643))
希望对您有所帮助:)
还有一个(SQL-Server 可能会自行完成)
and ((empresa13_.ID_EMPRESA in (422, 3643)) and usuario14_.ID_USUARIO=574 or empresa13_.ID_EMPRESA in (422, 3643))
等同于
and empresa13_.ID_EMPRESA in (422, 3643)
您也可以尝试这种更改(95% 确定它们是等效的)- 不会有嵌套的“或”,根据我的经验,这有时有助于提高性能。
and (
(valorlanca1_.DATA_PREVISTA<='2015-07-22' and valorlanca1_.SITUACAO=1
or valorlanca1_.DATA_BAIXA<='2015-07-22' and valorlanca1_.SITUACAO=3
) and conta10_.TIPO<>2
or fatura11_.DATA_VENCIMENTO<='2015-07-22' and conta10_.TIPO=2 and valorlanca1_.SITUACAO=1
or valorlanca1_.DATA_BAIXA<='2015-07-22' and conta10_.TIPO=2 and valorlanca1_.SITUACAO=3
)
收件人:
and (
valorlanca1_.DATA_PREVISTA <='2015-07-22' and valorlanca1_.SITUACAO=1 and conta10_.TIPO<>2
or fatura11_.DATA_VENCIMENTO <='2015-07-22' and valorlanca1_.SITUACAO=1 and conta10_.TIPO=2
or valorlanca1_.DATA_BAIXA <='2015-07-22' and valorlanca1_.SITUACAO=3
)
关于mysql - 如何在 mysql 上优化 select sum()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31590938/
在 的 React 组件中菜单,我需要设置selected反射(reflect)应用程序状态的选项的属性。 在 render() , optionState从状态所有者传递给 SortMenu 组件
我是初级 Ruby-mysql 程序员,我想知道如何使我的(存储过程)查询结果更快.. 这是我的存储过程我正在使用 SQL_CACHE.. 但我不确定.. 缓存使我的过程更快.. : ( DROP
我一直在 Python 中进行套接字编程,以使用 select.select(rfile, wfile, xlist[, timeout]) 处理由已连接的客户端套接字列表发出的请求,并且我还想用 J
我试图通过用空格填充文本来创建下拉列表中的列效果,如下例所示: [Aux1+1] [*] [Aux1+1] [@Tn=PP] [Main] [*] [Main A
我为 MySQL 编写了以下查询: SELECT subquery.t1_column1, subquery.t2_id, MAX(subquery.val) FROM ( S
为什么我们要用 select 标签来编写.attr('selected','selected') 例如: $('#countryList option').filter(function () {
Lokalizacja: Gdańsk Rzeszów Wrocław 不知道发生了什么,但在那种情况下没有选择的选项,我必须从列表中选择一些东西。当我从选
我的表单中有两个选择字段。第一个是单选,另一个是多选。现在我想做的是根据单选中所选的选项,使用给定的数据选择多选中的选项。为此,我在单选更改时触发 ajax 请求: $.ajax({ type
我在 Firefox 5 中发现了一个奇怪的错误(我现在无法访问 4)。但是,我认为它可能在 Firefox 4 中工作,因为我刚买了一台新电脑,而且我不记得以前见过这个错误。 我有几个选择框。所选值
此 SQL 有何不同: 第一个: select * from table_1 a join table_2 b on a.id = b.acc_id 第二个: select * f
预选 的最佳做法是什么?在 ? 根据不同的网站,两者都有效。但是哪个更好呢?最兼容? Foo Bar 最佳答案 如果您正在编写 XHTML,则 selected="selected" 是必需的。 如
我使用 Angular JS 创建了一个多选选择框:下面是相同的代码: JS: $scope.foobars = [{ 'foobar_id': 'foobar01', 'name':
我在 jqGrid 中有几列 edittype="select"。如何读取特定行中当前选定值的选项值? 例如:当我提供以下选项时,如何获得 FedEx 等的“FE” editoption: { val
这是我更大问题的精简查询,但要点是我试图内部联接到一个选择,其中选择受到外部选择的限制。那可能吗?我在内部选择上收到有关多部分标识符 S.Item 和 S.SerialNum 的错误。 要点是这样的,
如果chat.chat_type IS NULL,我想选择user.*,但如果chat.chat_type = 1 我想选择组。* SELECT CASE WHEN ch
我正在编写一个小脚本来测试表单在提交之前是否已被更改。所以我可以使用普通输入(文本、文本区域等): if(element.defaultValue != element.value) { al
我正在尝试为 Prototype 编写一个插件,用户在其中单击下拉菜单并将其替换为多选元素。我快完成了。在用户选择他们想要显示的内容并将表单提交到同一页面之前,一切都很好。我正在使用 PHP 来使用
你如何在 MongoDB 中进行嵌套选择,类似于 SELECT id FROM table1 WHERE id IN (SELECT id FROM table2) 最佳答案 MongoDB 尚不具备
我有以下用于选择下拉列表的代码: {{unit.Text}} UnitOfMeasurements 数组中的每一项看起来像这样: Selected: false Text: "lb" Va
我正在尝试使用[选定]和[ngValue]来设置表单中包含对象的选择标记的默认值。但出于某种原因,它们似乎无法相提并论。。示例代码:。这段代码最终只显示空白作为缺省值。如果删除[ngValue],它就
我是一名优秀的程序员,十分优秀!