-
Total de itens
3.089 -
Registro em
-
Última visita
Tudo que Denis Courcy postou
-
Oi, Ramon! Para que eu possa te ajudar, solicito que você descreva como faria se tivesse que guardar estas informações em um caderno, linha por linha. Se você responder, vamos lapidar sua descrição até que o algorítimo esteja pronto.
-
Oi, 'carlimmg' ! Tem, sim. O mysql permite importação e exportação de dados em txt. Que tipo de modelo você tem em mente? Complementando o post anterior. Em vez de trabalhar com broffice procure por www.pentaho.com. Uma solução de DW que você vai gostar. E, se não me falha a memória, é free.
-
Oi, 'cleberalmeidadf' Leia Manual do MySQL versão 4.1 (tradução em português) Capítulo 4. Administração do Bancos de Dados MySQL. Seção 4.1.2. Arquivo de Opções my.cnf
-
Oi, 'Prove Yourself' Altere novamente o arquivo de entrada para que fique assim: r/Abracadeiras c|Jaraguá do Sul n|Comércio Representações União e|r Roberto Ziemann 200 t|3370-0292 Salve o arquivo como .txt e não como .doc (.doc traz um monte de códigos dentro dele que serão lixo para você) A substituição de / por | serve para evirar endereços com s/n (sem numero) Crie uma tabela temporária com 2 atributos tipo char(1) e linha varchar(250) Importe os registros do arquivo .txt para a tabela temporária que aqui chamo de temp. LOAD DATA INFILE '<minha_pasta>\\temp.txt' INTO TABLE temp FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\' Trate os registros conforme o primeiro campo atribuindos as suas tabelas.
-
Oi, 'ziat' Normalize melhor estas tabelas. Modifique a tabela Funcionarios para que fique assim: idFuncionario, Nome Funcao idTurma Crie a tabela Turma idTurma Turma Modifique a tabela tb_rodizio para que fique assim: idFuncionario Periodo Mes Sua select ficará assim: SELECT r.Mes, r.Periodo, f.Nome, t.Turma, f.função FROM funcionario f INNER JOIN Turma t ON t.idTurma = f.idTurma INNER JOIN tb_rodizio r ON r.idFuncionario = f.idFuncionario GROUP BY r.Mes, r.Periodo
-
Oi, Carlos Alves Use o utilitário de linha de comando chamado mysqldump. O help deste utilitário e o manual do mysql contém as instruções para fazer o que você precisa.
-
Oi, 'igorbmartins' O Mysql está baseado no padrão ANSI 92, então é só seguir o padrão. SELECT DISTINCT <lista-de-campos> FROM tabela_a ta LEFT JOIN tabela_b tb ON tb.id = ta.id WHERE <condição-de-filtro> Maiores dúvidas sobre o assunto leia o manual do MySQL e/ou poste novamente.
-
(Resolvido) Melhorar performance do MySQL
pergunta respondeu ao Andréa Carvalho de Denis Courcy em MySQL
Andréa Não esqueça de, se você adotar o recurso de tabela temporária, apontar seu código PHP para ler esta tabela. A destruição da tabela temporária em memória se faz da mesma forma que a destruição de uma tabela comum. DROP TABLE view_temp; Andréa Não esqueça de, se você adotar o recurso de tabela temporária, apontar seu código PHP para ler esta tabela. A destruição da tabela temporária em memória se faz da mesma forma que a destruição de uma tabela comum. DROP TABLE view_temp; -
(Resolvido) Melhorar performance do MySQL
pergunta respondeu ao Andréa Carvalho de Denis Courcy em MySQL
Andréa Concluindo a pesquisa. Apesar de tentar forçar o uso do índice, o ganho foi de apenas 4 decimos de segundo. Sugiro a criação de uma tabela temporária que deverá ser criada, na RAM; carregada, a cada execução desta consulta; e destruida, apos a execuçao da query pára que a memoria seja liberada Segue abaixo o modelo. Creio que o ganho de resposta será valioso. De qualquer forma, já temos um ganho de 17.5 segundos, o que é muito bom. create TEMPORARY table view_temp ( crmid int(19), subject varchar(100), accountname varchar(100), quoteid int(19), total decimal(25,3), user_name varchar(255), contactid int(19), accountid int(19), INDEX subject (subject) );ENGINE=MEMORY INSERT INTO view_temp (crmid, subject, accountname, quoteid, total, user_name, contactid, accountid) SELECT STRAIGHT_JOIN vtiger_crmentity.crmid, vtiger_salesorder.subject, vtiger_account.accountname, vtiger_quotes.quoteid, vtiger_salesorder.total, CASE WHEN (vtiger_users.user_name IS NOT NULL) THEN vtiger_users.user_name ELSE vtiger_groups.groupname END AS user_name, vtiger_contactdetails.contactid, vtiger_account.accountid FROM vtiger_salesorder FORCE INDEX (subject) INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_salesorder.salesorderid INNER JOIN vtiger_sobillads ON vtiger_salesorder.salesorderid = vtiger_sobillads.sobilladdressid INNER JOIN vtiger_soshipads ON vtiger_salesorder.salesorderid = vtiger_soshipads.soshipaddressid LEFT JOIN vtiger_salesordercf ON vtiger_salesordercf.salesorderid = vtiger_salesorder.salesorderid LEFT OUTER JOIN vtiger_quotes ON vtiger_quotes.quoteid = vtiger_salesorder.quoteid LEFT OUTER JOIN vtiger_account ON vtiger_account.accountid = vtiger_salesorder.accountid LEFT JOIN vtiger_contactdetails ON vtiger_salesorder.contactid = vtiger_contactdetails.contactid LEFT JOIN vtiger_sogrouprelation ON vtiger_salesorder.salesorderid = vtiger_sogrouprelation.salesorderid LEFT JOIN vtiger_groups ON vtiger_groups.groupname = vtiger_sogrouprelation.groupname LEFT JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smownerid WHERE vtiger_crmentity.deleted = 0 -
Supondo que a data esteja no formato TDateTime, então basta diminuir assim: Var Novadata: Tdatetime; ... novadata := date - 20; //Se date = 11/08/2008, então novadata ficará com 22/07/2008
-
(Resolvido) Melhorar performance do MySQL
pergunta respondeu ao Andréa Carvalho de Denis Courcy em MySQL
Oi 'Andréa Carvalho'! repita por favor usando o trecho de código FROM vtiger_salesorder FORCE INDEX (subject) Não precisa me enviar Todos os resultados novamente. Somente o resultado da tabela abaixo *************************** 1. row *************************** id: 1 select_type: SIMPLE table: vtiger_salesorder type: ALL possible_keys: PRIMARY key: NULL key_len: NULL ref: NULL rows: 166545 Extra: Using filesort Informe, também, se houve ganho de tempo e quais os tempos para com e sem order by. Objetivo: Avaliar a performance e a obediência do MySQL na forçação de barra com o uso do índice. -
Oi,'Gustavo Henrique Teixeira Montag' Passe, por favor, a versão do banco e os tipos de máquinas e Sistemas operacionais nas mesmas.
-
(Resolvido) Melhorar performance do MySQL
pergunta respondeu ao Andréa Carvalho de Denis Courcy em MySQL
Oi 'Andréa Carvalho' Por favor me informe o retorno das duas consultas abaixo: ANTES DE EXECUTAR, por favor aplique as modificações que você fez. UTILIZE o utilitário de linha de comando do mysql (mysql.exe). 1o retorno COM order by 2o. retorno SEM order by. NÃO o LIMIT Objetivo avaliação de performance para a criação de uma view física temporária EXPLAIN SELECT STRAIGHT_JOIN vtiger_crmentity.crmid, vtiger_salesorder .subject, vtiger_account.accountname, vtiger_quotes.quoteid, vtiger_salesorder.total, CASE WHEN (vtiger_users.user_name IS NOT NULL) THEN vtiger_users.user_name ELSE vtiger_groups.groupname END AS user_name, vtiger_contactdetails.contactid, vtiger_account.accountid FROM vtiger_salesorder FORCE INDEX (subject) INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_salesorder.salesorderid INNER JOIN vtiger_sobillads ON vtiger_salesorder.salesorderid = vtiger_sobillads.sobilladdressid INNER JOIN vtiger_soshipads ON vtiger_salesorder.salesorderid = vtiger_soshipads.soshipaddressid LEFT JOIN vtiger_salesordercf ON vtiger_salesordercf.salesorderid = vtiger_salesorder.salesorderid LEFT OUTER JOIN vtiger_quotes ON vtiger_quotes.quoteid = vtiger_salesorder.quoteid LEFT OUTER JOIN vtiger_account ON vtiger_account.accountid = vtiger_salesorder.accountid LEFT JOIN vtiger_contactdetails ON vtiger_salesorder.contactid = vtiger_contactdetails.contactid LEFT JOIN vtiger_sogrouprelation ON vtiger_salesorder.salesorderid = vtiger_sogrouprelation.salesorderid LEFT JOIN vtiger_groups ON vtiger_groups.groupname = vtiger_sogrouprelation.groupname LEFT JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smownerid WHERE vtiger_crmentity.deleted = 0 ORDER BY vtiger_salesorder.subject ASC \G; -
Oi, MaDcAt! Primeiro vamos ao básico. Qual a cardinalidade das tabelas Empresas e Divisao? (1) "Uma empresa tem muitas divisões", (2) "Uma divisão tem muitas empresas" ou (3) "Em empresas podem haver varias divisões que podem ter várias empresas"
-
Oi, 'carlosmandra'! Pelo que entendi, sua select ficaria assim: SELECT STRAIGTH_JOIN <lista-de-campos> FROM Noticias N INNER JOIN editora E ON N.editora = E.id INNER JOIN area A ON E.area = A.id WHERE E.nome = <seu-campo-de-pesquisa> ORDER BY <data-de-publicação> DESC LIMIT 5 ; Onde: <lista-de-campos> é a lista de campos que você quer que o sql retorne. <seu-campo-de-pesquisa> a variável PHP que deverá fornaecer informações a pesquisa <data-de-publicação> a data em que as publicações foram registradas.
-
(Resolvido) Melhorar performance do MySQL
pergunta respondeu ao Andréa Carvalho de Denis Courcy em MySQL
Andréa, Obrigado. Pela análise inicial, verifiquei que está faltando índices para as tabelas e atributos abaixo relacionados. vtiger_sobillads.sobilladdressid vtiger_soshipads.soshipadsdressid, vtiger_crementity.deleted. Os dois primeiros podem ocasionar TABLE SCAN na consulta. O último só vale a pena ser criado se o default for <> 0 ou se houver valores diferentes de 0 e 1 (pelo que entendi está representando true ou false). A existencia deste tipo de índice agilizará a pesquisa. Outra opção para agilizar a consulta é usar a cláusula STRAIGHT_JOIN que força a leitura das tabelas na ordem em que você determinou no SELECT. Teste e reporte se houve progresso. -
(Resolvido) Melhorar performance do MySQL
pergunta respondeu ao Andréa Carvalho de Denis Courcy em MySQL
Oi, andrea, O mysql está informando que você não enviou a estrutura da tabea vtiger_salesordercf -
Versão do MySQL aparece errada no PHPINFO()
pergunta respondeu ao Andréa Carvalho de Denis Courcy em PHP
Transferindo para a área de PHP -
(Resolvido) Melhorar performance do MySQL
pergunta respondeu ao Andréa Carvalho de Denis Courcy em MySQL
Oi, Andréa! Você poderia, por favor colocar a(s) estrutura(s) das tabela(s) envolvida(s) nesta query? Poderia, também colocar a própria query? Gostaria se ver os índices e como você está otimizando a consulta, para que possa analisar e auxiliá-la. Não precisa colocar os nomes verdadeiros das colunas, índices e tabelas. Bastam que estejam representando os tipos de dados e a formação original da(s) tabela(s) e da consulta. -
Oi Hugo! faça contato com MySQL AB. Talvez eles tenham a solução.
-
Tem um modo mais simples. Veja os botõezinhos acima da janela de resposta. Da esquerda para a direita, o último é o CODE. O penúltimo é o QUOTE.
-
Oi, 'wgarcia' Agora entendi sua necessidade. Você não está falando de armazenamento de arrays e sim de uso de arrays PHP em instruções PHP para unitização em consultas MySQL dentro do PHP. Então esqueça minha consideração quanto ao termo "aberração". Superstrings em bancos de dados são strings que armazenam dados multivalorados. É raro o uso do termo. Considere como uma string que "guarda" strings.
-
Oi, 'wgarcia' Arrays no MySQL são, em minha opinião, uma aberração. O correto seria uma tabela normalizada com domínios caracterizados. Mas, se é o que você quer, então trate o atributo que servirá de array, como substrings em uma superstring. A função SUBSTRING te possibilitará resgatar qualquer parte em uma string, seja ela char, varchar, text ou blob. Para achar um valor de forma rápida você deverá criar índices FULLTEXT.
-
Oi, 'Xafam' Quando se utiliza nomes Windows, que possuam espaços, em DOS deve-se fazê-lo usando aspas. Então ficaria assim: int main (void) { // colocar os nomes de todos os arquivos da pasta no arquivo Excel lista.xls system("dir /b C:\\\"Documents and Settings\"\\Computador\\\"Meus documentos\"\\Arquivos\\*.* > C:\\\"Documents and Settings\"\\Computador\\\"Meus documentos\"\\lista.xls"); } Ou usar a velha regra de nomes 8.3 assim: int main (void) { // colocar os nomes de todos os arquivos da pasta no arquivo Excel lista.xls system("dir /b C:\\Docume~1\\Computador\\Meusdoc~1\\Arquivos\\*.* > C:\\\Docume~1\\Computador\\Meusdo~1\\lista.xls"); }
-
Oi, Pedro! O MySQL, a partir da versão 5.x possui um banco chamado INFORMATION_SCHEMA que funciona como metadados (Base para um dicionario de dados) que, se você usar as ferramentas de criação de tabelas do Mysql (exemplo MySQL Workbench) podem conter o que você necessita. Informação sobre relacionamentos podem sert obtidas observando as cláusulas constraints. Estas por sua vez, podem ser examinadas com o comando show create tables. Se não houver constraits, então você deverá proceder a um trabalho árduo de engenharia reversa, observando as estruturas as tabelas, analisando as chaves candidatas e os atributos, que sem índices (por deficiêncis de muitos curiosos metidos a programadores) podem ser chaves candidatas a relacionamentos. Você deverá separar as entidades fortes das entidades fracas e das "entidades relacionamentos", que são as tabelas criadas para que seja possível os relacionamentos muitos para muitos ou n-árias.