marcioe Posted September 17, 2015 Report Share Posted September 17, 2015 Meus amigos, Estou tendo um problema de lentidao, com uma tabela (MYSQL) que tem mais de 3.000.000 de registros, e é acessado remotamente por TERMINAL server, roda razoavel, mas esta ficando lento quando umas 10 pessoas penduram ao mesmo tempo. O servidor é Linux, Porem esta tabela é das notas fiscais transportadas pela empresa, porem esta com registros de uns 2 anos, estava pensando em criar uma tabela identica, porem queria copiar tipo assim os registros de 2013 e 2014, e quando fosse 2016 copiar os de 2015, via comando sql, sem quer que criar variaveis e ler um e gravar e outro. Seria como se fosse um arquivo morto. Alguma ideia dos amigos Quote Link to comment Share on other sites More sharing options...
miragerr Posted September 18, 2015 Report Share Posted September 18, 2015 Ola, Boa noite Faça da seguinte forma INSERT INTO nova_tabela ( Select * FROM tabela_atual WHERE data_do_filtro BETWEEN "2013-01-01" AND "2014-12-31" ) essa é uma forma mais simples de se fazer em MYSQL, estou mudando para o POSTGRES justamente para fazer isso de forma transparente no DB, pois tem a possibilidade de se particionar a TABELA por ano dentro de uma DDL do POSTGRES, e não importa a forma de SELECT que voce faz se for em anos anteriores. Pois tenho um cliente com 23 Filiais e estou tendo muitos problemas de lentidão, pois o DB em MYSQL esta desde 2002, e uma das tabelas ja esta com mais de 500 milhoes de linhas. Espero ter ajudado. Quote Link to comment Share on other sites More sharing options...
marcioe Posted September 19, 2015 Author Report Share Posted September 19, 2015 Show de bola irmão .: era isso mesmo, agora coloquei uma trava no sistema que quando a nota for de um anterior a ultima exportação ele aceita ler o documento. A tabela estava com 4,5 gigas.... agora tá minuscula.... kkkk e voando a jato.... Quote Link to comment Share on other sites More sharing options...
evandro Posted September 19, 2015 Report Share Posted September 19, 2015 Olá, pois tem a possibilidade de se particionar a TABELA por ano dentro de uma DDL Isto pode ser feito no MySql também. Quote Link to comment Share on other sites More sharing options...
marcioe Posted September 21, 2015 Author Report Share Posted September 21, 2015 opa irmão, Evendro isso muito interessa, a mim e a todos os amigos, como seria isso... ?? Quote Link to comment Share on other sites More sharing options...
Eroni Posted September 23, 2015 Report Share Posted September 23, 2015 Bom dia, os indices desta tabela estão projetados corretamente? Quote Link to comment Share on other sites More sharing options...
marcioe Posted September 23, 2015 Author Report Share Posted September 23, 2015 Creio que sim. A tabela está assim. CREATE TABLE `ctrc_nf` ( `ID` INT(11) NOT NULL AUTO_INCREMENT, `ID_CTRC` INT(11) NULL DEFAULT '0', `SERIE_NF` CHAR(3) NULL DEFAULT '', `NUMERO_NF` CHAR(11) NULL DEFAULT '0', `CFOP` CHAR(5) NULL DEFAULT '' COMMENT 'CFOP', `NF_ENTRADA_SAIDA` CHAR(1) NULL DEFAULT '1' COMMENT 'Campo que Define se a Nota foi de 0-Entrada ou 1-Saida', `DATA_EMISSAO_NF` DATE NULL DEFAULT '0000-00-00', `MODELO_DOCUMENTO` CHAR(2) NULL DEFAULT '', `PLACA_VEICULO` CHAR(8) NOT NULL DEFAULT '0', `PLACA_CARRETA` CHAR(8) NULL DEFAULT '' COMMENT 'Placa da Carreta', `FRETE_POR_CONTA` CHAR(1) NULL DEFAULT NULL COMMENT '0-emitente 1-destinatario 2-terceiros 9-sem frete', `CNPJ_TRANSPORTDORA` CHAR(14) NOT NULL DEFAULT '0' COMMENT 'Cnpj da Empresa Transportadora da Carga', `ROMANEIO` CHAR(50) NULL DEFAULT '', `PEDIDO` CHAR(50) NULL DEFAULT '', `NUMERO_TRANSPORTE` CHAR(30) NULL DEFAULT '' COMMENT 'Numero do Transporte', `NUMERO_TRANSPORTE_ORIGINAL` CHAR(30) NULL DEFAULT '' COMMENT 'Numero do Transporte', `NUMERO_TRANSPORTE_PRINCIPAL` CHAR(30) NULL DEFAULT '' COMMENT 'Numero do Transporte', `LOCAL_NEGOCIOS` CHAR(30) NULL DEFAULT '' COMMENT 'Numero do Transporte', `TIPO_TRANSPORTE` CHAR(30) NULL DEFAULT '' COMMENT 'Tipo de Transporte', `LOCAL_ORIGEM_TRANSPORTE` CHAR(30) NULL DEFAULT '' COMMENT 'Local de Origem do Transporte', `CODIGO_TRANSPORTADOR` CHAR(10) NULL DEFAULT '' COMMENT 'Código do Transportador', `MOTIVO_COMPLEMENTO_FRETE` CHAR(50) NULL DEFAULT '' COMMENT 'Motivo complemento de Frete', `CODIGO_COMPLEMENTO_FRETE` CHAR(2) NULL DEFAULT '' COMMENT 'Codigo Complemento do Frete', `TIPO_CUSTO_FRETE` CHAR(10) NULL DEFAULT '' COMMENT 'Tipo de Custo do Frete', `BASE_CALCULO` DECIMAL(18,2) NULL DEFAULT '0.00', `VALOR_ICMS` DECIMAL(18,2) NULL DEFAULT '0.00', `ALIQUOTA_ICMS` DECIMAL(18,2) NULL DEFAULT '0.00' COMMENT 'Aliquota de Icms', `BASE_CALCULO_ST` DECIMAL(18,2) NULL DEFAULT '0.00', `VALOR_ICMS_ST` DECIMAL(18,2) NULL DEFAULT '0.00', `PESO_LIQUIDO` DECIMAL(18,3) NULL DEFAULT '0.000', `PESO_TOTAL_KG` DECIMAL(18,3) NULL DEFAULT '0.000', `VALOR_PRODUTOS` DECIMAL(18,2) NULL DEFAULT '0.00', `NUMERO_VOLUMES` INT(10) NULL DEFAULT '0', `ESPECIE_VOLUMES` CHAR(30) NULL DEFAULT NULL, `VALOR_NOTA` DECIMAL(18,2) NULL DEFAULT '0.00', `VALOR_FRETE` DECIMAL(18,2) NULL DEFAULT '0.00' COMMENT 'Valor do Frete', `VALOR_FRETE_CARRETA` DECIMAL(18,2) NULL DEFAULT '0.00' COMMENT 'Valor Frete Carreta', `VALOR_FRETE_RATEADO` DECIMAL(18,2) NULL DEFAULT '0.00' COMMENT 'Valor do Frete Calculado Pelo Rateio', `VALOR_FRETE_ANTES_RATEADO` DECIMAL(18,2) NULL DEFAULT '0.00' COMMENT 'Valor do Frete Antes do Rateio do Frete', `CHAVE_NFE` CHAR(60) NULL DEFAULT '', `CHAVE_NFE_COMPLEMENTO` CHAR(14) NULL DEFAULT '', `PIN_CHAVE` INT(11) NULL DEFAULT '0', `DESCRICAO_COMPLEMENTO` CHAR(60) NULL DEFAULT '' COMMENT 'Descricao do Complemento ', `DISTANCIA` DECIMAL(18,4) NULL DEFAULT '0.0000' COMMENT 'Distancia Percorrida', `QTDE_ENTREGAS` INT(10) NULL DEFAULT '0' COMMENT 'Quantidade de Entregas', `NUMERO_PRE_CTRC` INT(10) NULL DEFAULT '0' COMMENT 'Numero do Pre-Ctrc', `MOTIVO_COMPLEMENTO` CHAR(30) NULL DEFAULT '' COMMENT 'Motivo do Complemento ', `NUMERO_MINUTA` INT(11) NULL DEFAULT '0', `SERIE_MINUTA` CHAR(3) NULL DEFAULT '', `CODIGO_EMITENTE` INT(6) NOT NULL DEFAULT '0', `IE_EMITENTE` CHAR(18) NULL DEFAULT '' COMMENT 'Numero do Pre-Ctrc', `CNPJ_EMITENTE` CHAR(14) NULL DEFAULT '' COMMENT 'Cnpj do emitente', `UF_EMITENTE` CHAR(2) NULL DEFAULT '', `CODIGO_MUNICIPIO_EMITENTE` INT(10) NOT NULL DEFAULT '0', `CNPJ_DESTINATARIO` CHAR(14) NULL DEFAULT '', `UF_DESTINATARIO` CHAR(2) NULL DEFAULT '', `CODIGO_MUNICIPIO_DESTINATARIO` INT(10) NOT NULL DEFAULT '0', `SELECIONADO_EDI` CHAR(1) NULL DEFAULT 'N' COMMENT 'Selecionado E.D.I', `DATA_OCORRENCIA` DATE NULL DEFAULT '0000-00-00' COMMENT 'Data Ocorrencia', `HORA_OCORRENCIA` CHAR(10) NULL DEFAULT '00:00:00' COMMENT 'Hora Ocorrencia', `CODIGO_OCORRENCIA` CHAR(4) NULL DEFAULT '' COMMENT 'Código da Ocorrencia Conforme Embarcadora', `ACAO_OCORRENCIA` CHAR(1) NULL DEFAULT '' COMMENT 'Código da Acao de Ocorrencia', `OBS_OCORRENCIA` CHAR(100) NULL DEFAULT '' COMMENT 'Código da Ocorrencia Conforme Embarcadora', `DATA_IMPORTACAO` DATE NOT NULL DEFAULT '0000-00-00', `HORA_IMPORTACAO` CHAR(10) NULL DEFAULT '00:00:00', `NOME_ARQUIVO_CAMINHO` VARCHAR(250) NOT NULL, `CUBAGEM` DECIMAL(18,3) NULL DEFAULT '0.000' COMMENT 'Cubagem NF-e (M3)', `FATOR_CUBAGEM` DECIMAL(18,3) NULL DEFAULT '0.000' COMMENT 'Fator de Cubagem', `SUBCONTRATACAO` CHAR(1) NULL DEFAULT 'N' COMMENT 'Subcontratação', `CNPJ_SUBBCONTRATADO` CHAR(18) NULL DEFAULT '' COMMENT 'CNPJ do subcontrato', `CIDADE_SUBBCONTRATADO` CHAR(7) NULL DEFAULT '' COMMENT 'Cidade do subcontratado(IBGE)', `CHAVE_CTE_SUBBCONTRATADO` CHAR(44) NULL DEFAULT '' COMMENT 'Chave do CT-e', `REDESPACHO` CHAR(1) NULL DEFAULT 'N' COMMENT 'Identifica Redespacho', `CNPJ_REDESPACHO` CHAR(18) NULL DEFAULT '' COMMENT 'CNPJ Transportador Redespacho', `CIDADE_REDESPACHO` CHAR(7) NULL DEFAULT '' COMMENT 'Cidade do Redespacho IBGE', `UF_REDESPACHO` CHAR(2) NULL DEFAULT '' COMMENT 'UF do Redespacho', PRIMARY KEY (`ID`), INDEX `IDX_CHAVE_NFE` (`CHAVE_NFE`), INDEX `IDX_ID_CTRC` (`ID_CTRC`), INDEX `IDX_NUMERO_NF` (`NUMERO_NF`), INDEX `IDX_NUMERO_TRANSPORTE` (`NUMERO_TRANSPORTE`), INDEX `IDX_NUMERO_PRE_CTRC` (`NUMERO_PRE_CTRC`), INDEX `IDX_PLACA_CARRETA` (`PLACA_CARRETA`), INDEX `IDX_PLACA_VEICULO` (`PLACA_VEICULO`) ) COLLATE='latin1_swedish_ci' ENGINE=InnoDB ; Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.