Ir para conteúdo
CamiloDourado

Lentidão usando Order BY

Recommended Posts

Estou com um problema para usar order by no MySQL 8, um exemplo é esse select abaixo usando o order by, estou passando esse como exemplo, mais estou com o mesmo problema de lentidão com todas as consultas que preciso ordenar. Já criei índice em todos os campos usados em (where, join e order by) e mesmo assim fica com os tempos ( 70.047 sec / 0.047 sec com order by ) ( 0.187 sec / 2.516 sec  sem o order by ).

Abaixo a query e o dump das tabelas usadas.

 

Select                                                                                                                 
     movimentacao.*,                                                                                                      
     coalesce(chaveNFe, substr(originXML.IdNFe, 4)) as lookup_chave,                                                      
     emp.GuidSystemEmpresa as lookup_GuidEmitente,                                                                    
     pessoa.NmNome         as lookup_GuidDestinatario,                                                                
     emp.DsLoja            as lookup_emitente,                                                                        
     pessoa.NmNome         as lookup_destinatario,                                                                    
     (select case                                                                                                     
                        when NfeCancelada          = '1' then 'Cancelada'                                                  
                        when NFeCanceladaForaPrazo = '1' then 'Cancelada'                                                  
                        when NfeAutorizada         = '1' then 'Emitida'                                                    
                      else 'Pendente'                                                                                      
                    end                                                                                                      
                                                                                                                   
                    from obrigacoesfiscaisnfestatus obrig                                                                    
                    where obrig.GuidMovimentacao = movimentacao.GuidMovimentacao                                             
                    order by obrig.DtHoraEnvio desc                                                                          
                    limit 1                                                                                                  
            ) as lookup_status,                                                                                          
  natOp.Nome as lookup_guidFiscalNaturezaOp,                                                                           
  (                                                                                                                    
   if(movimentacao.origin <> "PED", "",                                                                                
   (select NrPedido from financeiromovimento                                                                           
    where GuidOrigem = (select GuidPedidoFormaPagamento from pedidoFormaPagamento                                      
                        where GuidPedido = movimentacao.guidOrigin                                                     
                        limit 1)                                                                                       
       limit 1))                                                                                                          
  ) as lookup_NrPedido,                                                                                                
     tot.vNF as lookup_TotalNF                                                                                            
                                                                                                                          
From movimentacao                                                                                                      
left join movimentacaoxmlimportado originXML on (tpNF = 'E' and originXML.GuidMovimentacaoXMLImportado = GuidOrigin)
left join fiscalNaturezaOp         natOp     on (NatOp.GuidFiscalNaturezaOp = movimentacao.GuidFiscalNaturezaOp)       
left join movimentacaoEmitente     emit      on (emit.GuidMovimentacao      = movimentacao.GuidMovimentacao)           
left join movimentacaodestinatario dest      on (dest.GuidMovimentacao      = movimentacao.GuidMovimentacao)           
left join movimentacaoTotalIcms    tot       on (tot.GuidMovimentacao       = movimentacao.GuidMovimentacao)           
left join systemEmpresa emp    on (emp.GuidSystemEmpresa = emit.GuidEmitente)                                      
left join pessoa        pessoa on (pessoa.GuidPessoa     = dest.GuidDestinatario)                                  
Where movimentacao.tpNF='S'
And movimentacao.dhSaiEnt between '2017-12-01' and '2017-12-31 23:59:59'
Order by pessoa.NmNome

 

 

 

-- MySQL dump 10.13  Distrib 8.0.11, for Win64 (x86_64)
--
-- ------------------------------------------------------
-- Server version    8.0.11

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
 SET NAMES utf8 ;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `fiscalnaturezaop`
--

DROP TABLE IF EXISTS `fiscalnaturezaop`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
 SET character_set_client = utf8mb4 ;
CREATE TABLE `fiscalnaturezaop` (
  `GuidFiscalNaturezaOp` varbinary(16) NOT NULL,
  `CodNatOP` char(6) DEFAULT NULL,
  `nome` varchar(100) NOT NULL,
  `descricao` varchar(100) DEFAULT NULL,
  `tipo` char(1) DEFAULT NULL,
  `GuidCFOPOrigem` varbinary(16) DEFAULT NULL,
  `GuidCFOPDestino` varbinary(16) DEFAULT NULL,
  `GuidUfOrigem` varbinary(16) DEFAULT NULL,
  `GuidUfDestino` varbinary(16) DEFAULT NULL,
  `UsuCad` varbinary(16) DEFAULT NULL,
  `momCad` datetime DEFAULT NULL,
  `UsuAlt` varbinary(16) DEFAULT NULL,
  `momAlt` datetime DEFAULT NULL,
  `UsuCan` varbinary(16) DEFAULT NULL,
  `momCan` datetime DEFAULT NULL,
  `LgCompleto` char(1) DEFAULT NULL,
  PRIMARY KEY (`GuidFiscalNaturezaOp`),
  UNIQUE KEY `GuidFiscalNaturezaOp_UNIQUE` (`GuidFiscalNaturezaOp`),
  KEY `idxCod` (`CodNatOP`),
  KEY `idxNome` (`nome`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `movimentacao`
--

DROP TABLE IF EXISTS `movimentacao`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
 SET character_set_client = utf8mb4 ;
CREATE TABLE `movimentacao` (
  `GuidMovimentacao` varbinary(16) NOT NULL,
  `origin` char(3) DEFAULT NULL,
  `guidOrigin` varbinary(16) DEFAULT NULL,
  `chaveNFe` varchar(50) DEFAULT NULL,
  `chaveNFeRef` varchar(50) DEFAULT NULL,
  `GuidFiscalNaturezaOp` varbinary(16) DEFAULT NULL,
  `indPag` char(1) DEFAULT NULL,
  `xmod` char(2) DEFAULT NULL,
  `serie` varchar(3) DEFAULT NULL,
  `nNF` int(11) DEFAULT NULL,
  `dhEmi` datetime DEFAULT NULL,
  `dhSaiEnt` datetime DEFAULT NULL,
  `tpNF` char(1) DEFAULT NULL,
  `cMunFG` varchar(7) DEFAULT NULL,
  `cUF` char(2) DEFAULT NULL,
  `tpImp` char(1) DEFAULT NULL,
  `tpEmis` char(1) DEFAULT NULL,
  `cDV` decimal(1,0) DEFAULT NULL,
  `tpAmb` char(1) DEFAULT NULL,
  `finNFe` char(1) DEFAULT NULL,
  `procEmi` char(1) DEFAULT NULL,
  `InfoCompContribuinte` text,
  `GuidInfoFisco` varbinary(16) DEFAULT NULL,
  `DescCompFisco` text,
  `verProc` varchar(20) DEFAULT NULL,
  `nProt` varchar(20) DEFAULT NULL,
  `GuidPlanoContas` varbinary(16) DEFAULT NULL,
  `UsuCad` varbinary(16) DEFAULT NULL,
  `momCad` datetime DEFAULT NULL,
  `UsuAlt` varbinary(16) DEFAULT NULL,
  `momAlt` datetime DEFAULT NULL,
  `UsuCan` varbinary(16) DEFAULT NULL,
  `momCan` datetime DEFAULT NULL,
  `LgCompleto` char(1) DEFAULT NULL,
  `refIdNFe` int(11) DEFAULT NULL,
  `refIdNFeOld` int(11) DEFAULT NULL,
  `GuidSystemEmpresa` varbinary(16) DEFAULT NULL,
  PRIMARY KEY (`GuidMovimentacao`),
  UNIQUE KEY `GuidMovimentacao_UNIQUE` (`GuidMovimentacao`),
  KEY `idxDhSaiEnt` (`dhSaiEnt`),
  KEY `idxnNF` (`nNF`),
  KEY `idxGuidOrigin` (`guidOrigin`),
  KEY `idxUsuCad` (`UsuCad`),
  KEY `idxTPNF` (`tpNF`),
  KEY `idxOrigin` (`origin`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `movimentacaodestinatario`
--

DROP TABLE IF EXISTS `movimentacaodestinatario`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
 SET character_set_client = utf8mb4 ;
CREATE TABLE `movimentacaodestinatario` (
  `GuidMovimentacaoDestinatario` varbinary(16) NOT NULL,
  `GuidMovimentacao` varbinary(16) DEFAULT NULL,
  `GuidDestinatario` varbinary(16) DEFAULT NULL,
  `CNPJ_CPF` varchar(14) DEFAULT NULL,
  `xLgr` varchar(60) DEFAULT NULL,
  `nro` varchar(60) DEFAULT NULL,
  `xCpl` varchar(60) DEFAULT NULL,
  `UF` char(2) DEFAULT NULL,
  `cMun` varchar(7) DEFAULT NULL,
  `xBairro` varchar(60) DEFAULT NULL,
  `CEP` varchar(8) DEFAULT NULL,
  `UsuCad` varbinary(16) DEFAULT NULL,
  `momCad` datetime DEFAULT NULL,
  `UsuAlt` varbinary(16) DEFAULT NULL,
  `momAlt` datetime DEFAULT NULL,
  `UsuCan` varbinary(16) DEFAULT NULL,
  `momCan` datetime DEFAULT NULL,
  `LgCompleto` char(1) DEFAULT NULL,
  PRIMARY KEY (`GuidMovimentacaoDestinatario`),
  UNIQUE KEY `GuidMovimentacaoDestinatario_UNIQUE` (`GuidMovimentacaoDestinatario`),
  KEY `idxMovimentacao` (`GuidMovimentacao`),
  KEY `idxGuidDestinatario` (`GuidDestinatario`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `movimentacaoemitente`
--

DROP TABLE IF EXISTS `movimentacaoemitente`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
 SET character_set_client = utf8mb4 ;
CREATE TABLE `movimentacaoemitente` (
  `GuidMovimentacaoEmitente` varbinary(16) NOT NULL,
  `GuidMovimentacao` varbinary(16) DEFAULT NULL,
  `GuidEmitente` varbinary(16) DEFAULT NULL,
  `CNPJ_CPF` varchar(14) DEFAULT NULL,
  `xLgr` varchar(60) DEFAULT NULL,
  `nro` varchar(60) DEFAULT NULL,
  `xCpl` varchar(60) DEFAULT NULL,
  `UF` char(2) DEFAULT NULL,
  `cMun` varchar(7) DEFAULT NULL,
  `xBairro` varchar(60) DEFAULT NULL,
  `CEP` varchar(8) DEFAULT NULL,
  `UsuCad` varbinary(16) DEFAULT NULL,
  `momCad` datetime DEFAULT NULL,
  `UsuAlt` varbinary(16) DEFAULT NULL,
  `momAlt` datetime DEFAULT NULL,
  `UsuCan` varbinary(16) DEFAULT NULL,
  `momCan` datetime DEFAULT NULL,
  `LgCompleto` char(1) DEFAULT NULL,
  PRIMARY KEY (`GuidMovimentacaoEmitente`),
  UNIQUE KEY `GuidMovimentacaoEmitente_UNIQUE` (`GuidMovimentacaoEmitente`),
  KEY `idxMovimentacao` (`GuidMovimentacao`),
  KEY `idxGuidEmitente` (`GuidEmitente`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `movimentacaototalicms`
--

DROP TABLE IF EXISTS `movimentacaototalicms`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
 SET character_set_client = utf8mb4 ;
CREATE TABLE `movimentacaototalicms` (
  `GuidMovimentacaoTotalICMS` binary(16) NOT NULL,
  `GuidMovimentacao` binary(16) DEFAULT NULL,
  `vBC` decimal(15,2) DEFAULT NULL,
  `vICMS` decimal(15,2) DEFAULT NULL,
  `vICMSDeson` decimal(15,2) DEFAULT '0.00',
  `vBCST` decimal(15,2) DEFAULT NULL,
  `vST` decimal(15,2) DEFAULT NULL,
  `vProd` decimal(15,2) DEFAULT NULL,
  `vFrete` decimal(15,2) DEFAULT NULL,
  `vSeg` decimal(15,2) DEFAULT NULL,
  `vDesc` decimal(15,2) DEFAULT NULL,
  `vII` decimal(15,2) DEFAULT NULL,
  `vIPI` decimal(15,2) DEFAULT NULL,
  `vPIS` decimal(15,2) DEFAULT NULL,
  `vCOFINS` decimal(15,2) DEFAULT NULL,
  `vOutro` decimal(15,2) DEFAULT NULL,
  `vNF` decimal(15,2) DEFAULT NULL,
  `vTotTrib` decimal(15,2) DEFAULT '0.00',
  `UsuCad` binary(16) DEFAULT NULL,
  `momCad` datetime DEFAULT NULL,
  `UsuAlt` binary(16) DEFAULT NULL,
  `momAlt` datetime DEFAULT NULL,
  `UsuCan` binary(16) DEFAULT NULL,
  `momCan` datetime DEFAULT NULL,
  `LgCompleto` char(1) DEFAULT NULL,
  PRIMARY KEY (`GuidMovimentacaoTotalICMS`),
  KEY `idxMovimentacao` (`GuidMovimentacao`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `movimentacaoxmlimportado`
--

DROP TABLE IF EXISTS `movimentacaoxmlimportado`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
 SET character_set_client = utf8mb4 ;
CREATE TABLE `movimentacaoxmlimportado` (
  `GuidMovimentacaoXMLImportado` varbinary(16) NOT NULL,
  `IdNFe` varchar(50) DEFAULT NULL,
  `XML` mediumtext,
  `NaturezaOperacao` varchar(100) DEFAULT NULL,
  `DtEmissao` date DEFAULT NULL,
  `NumeroNF` varchar(15) DEFAULT NULL,
  `TipoNF` char(1) DEFAULT NULL,
  `cnpjEmitente` varchar(45) DEFAULT NULL,
  `NmEmitente` varchar(100) DEFAULT NULL,
  `GuidSystemEmpresa` varbinary(16) DEFAULT NULL,
  `cnpjDestinatario` varchar(45) DEFAULT NULL,
  `NmDestinatario` varchar(100) DEFAULT NULL,
  `LgImportado` char(1) DEFAULT NULL,
  `UsuCad` varbinary(16) DEFAULT NULL,
  `MomCad` datetime DEFAULT NULL,
  `UsuAlt` varbinary(16) DEFAULT NULL,
  `MomAlt` datetime DEFAULT NULL,
  `UsuCan` varbinary(16) DEFAULT NULL,
  `MomCan` datetime DEFAULT NULL,
  `LgCompleto` char(1) DEFAULT NULL,
  PRIMARY KEY (`GuidMovimentacaoXMLImportado`),
  UNIQUE KEY `GuidMovimentacaoXMLImportado_UNIQUE` (`GuidMovimentacaoXMLImportado`),
  UNIQUE KEY `IdNFe_UNIQUE` (`IdNFe`),
  KEY `idxMovimentacaoXMLImportadoIdNFe` (`IdNFe`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `obrigacoesfiscaisnfestatus`
--

DROP TABLE IF EXISTS `obrigacoesfiscaisnfestatus`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
 SET character_set_client = utf8mb4 ;
CREATE TABLE `obrigacoesfiscaisnfestatus` (
  `GuidObrigacoesFiscaisNfeStatus` binary(16) NOT NULL,
  `GuidMovimentacao` binary(16) DEFAULT NULL,
  `modelo` int(11) DEFAULT NULL,
  `XMLNfe` text,
  `DtHoraEnvio` datetime DEFAULT NULL,
  `UsuEnvio` binary(16) DEFAULT NULL,
  `XmlValido` char(1) DEFAULT NULL,
  `NfeAutorizada` char(1) DEFAULT NULL,
  `NFeCancelada` char(1) DEFAULT NULL,
  `NFeCanceladaForaPrazo` char(1) DEFAULT NULL,
  `Msg` text,
  `RetornoWS` blob,
  `Status` varchar(100) DEFAULT NULL,
  `Layout` blob,
  `Versao` varchar(40) DEFAULT NULL,
  `Ambiente` varchar(20) DEFAULT NULL,
  `Motivo` text,
  `Recibo` text,
  `Protocolo` varchar(100) DEFAULT NULL,
  `ChaveNFe` varchar(100) DEFAULT NULL,
  `NFeRetorno` blob,
  `UsuCad` binary(16) DEFAULT NULL,
  `MomCad` datetime DEFAULT NULL,
  `UsuAlt` binary(16) DEFAULT NULL,
  `MomAlt` datetime DEFAULT NULL,
  `UsuCan` binary(16) DEFAULT NULL,
  `MomCan` datetime DEFAULT NULL,
  `LgCompleto` char(1) DEFAULT NULL,
  PRIMARY KEY (`GuidObrigacoesFiscaisNfeStatus`),
  KEY `idxNfeAutorizada` (`NfeAutorizada`),
  KEY `idxDtHoraEnvio` (`DtHoraEnvio`),
  KEY `idxGuidMovimentacao` (`GuidMovimentacao`),
  KEY `idxNfeCancelada` (`NFeCancelada`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `pessoa`
--

DROP TABLE IF EXISTS `pessoa`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
 SET character_set_client = utf8mb4 ;
CREATE TABLE `pessoa` (
  `GuidPessoa` varbinary(16) NOT NULL,
  `CodPessoa` varchar(6) DEFAULT NULL,
  `NmNome` varchar(100) DEFAULT NULL,
  `DsTipoPessoa` char(1) DEFAULT NULL,
  `DsApelido` varchar(100) DEFAULT NULL,
  `DsTelefone` varchar(16) DEFAULT NULL,
  `DsEmail` varchar(120) DEFAULT NULL,
  `GuidPessoaST` varbinary(16) DEFAULT NULL,
  `GuidSystemEmpresa` varbinary(16) DEFAULT NULL,
  `UsuCad` varbinary(16) DEFAULT NULL,
  `MomCad` datetime DEFAULT NULL,
  `UsuAlt` varbinary(16) DEFAULT NULL,
  `MomAlt` datetime DEFAULT NULL,
  `UsuCan` varbinary(16) DEFAULT NULL,
  `MomCan` datetime DEFAULT NULL,
  `isCliente` char(1) DEFAULT NULL,
  `isFornecedor` char(1) DEFAULT NULL,
  `LgCompleto` char(1) DEFAULT NULL,
  PRIMARY KEY (`GuidPessoa`),
  UNIQUE KEY `GuidPessoa_UNIQUE` (`GuidPessoa`),
  KEY `idxCodPessoa` (`CodPessoa`),
  KEY `idxNmNome` (`NmNome`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `systemempresa`
--

DROP TABLE IF EXISTS `systemempresa`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
 SET character_set_client = utf8mb4 ;
CREATE TABLE `systemempresa` (
  `GuidSystemEmpresa` binary(16) NOT NULL,
  `CodLoja` varchar(3) DEFAULT NULL,
  `CNPJ` char(14) DEFAULT NULL,
  `RazaoSocial` varchar(60) DEFAULT NULL,
  `NomeFantasia` varchar(120) DEFAULT NULL,
  `DsLoja` varchar(120) DEFAULT NULL,
  `CNAE` varchar(100) DEFAULT NULL,
  `InscEstadual` varchar(45) DEFAULT NULL,
  `InscMunicipal` varchar(45) DEFAULT NULL,
  `DtAbertura` date DEFAULT NULL,
  `Tributacao` char(1) DEFAULT NULL,
  `crt` char(1) DEFAULT NULL,
  `Telefone` varchar(14) DEFAULT NULL,
  `Email` varchar(120) DEFAULT NULL,
  `Perfil` char(1) DEFAULT NULL,
  `Atividade` char(1) DEFAULT NULL,
  `GuidPlanoContasEntrada` binary(16) DEFAULT NULL,
  `GuidPlanoContasNFe` binary(16) DEFAULT NULL,
  `GuidPlanoContasNFCe` binary(16) DEFAULT NULL,
  `GuidPlanoContasReceber` binary(16) DEFAULT NULL,
  `GuidPlanoContasPagar` binary(16) DEFAULT NULL,
  `IndNatPJ` char(2) DEFAULT NULL,
  `Suframa` varchar(9) DEFAULT NULL,
  `Matriz` char(1) DEFAULT NULL,
  `LgCompleto` char(1) DEFAULT NULL,
  `UsuCad` binary(16) DEFAULT NULL,
  `MomCad` datetime DEFAULT NULL,
  `UsuAlt` binary(16) DEFAULT NULL,
  `MomAlt` datetime DEFAULT NULL,
  `UsuCan` binary(16) DEFAULT NULL,
  `MomCan` datetime DEFAULT NULL,
  PRIMARY KEY (`GuidSystemEmpresa`),
  KEY `GuidPais_idx` (`CNPJ`),
  KEY `idxCodLoja` (`CodLoja`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2018-09-20 19:12:36

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.