select cc.CampoConhecimento, COUNT(distinct(cc.idCv))asTotal,
count(CASE WHEN cc.NivelConhecimento=1 OR cc.NivelConhecimento=0 OR cc.NivelConhecimento IS NULL THEN 'Basico' ELSE NULL END)asBasico,
count(CASE WHEN cc.NivelConhecimento=2 THEN 'Intermediario' ELSE NULL END)asIntermediario,
count(CASE WHEN cc.NivelConhecimento=3 THEN 'Avancado' ELSE NULL END)asAvancadofrom tblCurriculoConhecimento cc
inner join tblCadastro_Curriculo_Incompleto cv on cv.IdCV= cc.idCV
where cv.Ativo='S'and(cv.Sexo='M'or cv.Sexo='F')and cv.Excluido='N'and((YEAR(CURDATE())-RIGHT(REPLACE(cv.DtNascimento,'/',''),4)>=16or(datediff(YEAR(ifnull(date(cv.DataUpdate),date(cv.DataCadastro))),CURDATE())+ YEAR(CURDATE())-RIGHT(REPLACE(cv.DtNascimento,'/',''),4))>=16)and(YEAR(CURDATE())-RIGHT(REPLACE(cv.DtNascimento,'/',''),4)<=97or(datediff(YEAR(ifnull(date(cv.DataUpdate),date(cv.DataCadastro))),CURDATE())+ YEAR(CURDATE())-RIGHT(REPLACE(cv.DtNascimento,'/',''),4))<=97))groupby cc.CampoConhecimento order by cc.CampoConhecimento asc;
ALTER TABLE tblCurriculoConhecimento ADD INDEX (idCV,CampoConhecimento,NivelConhecimento);
ALTER TABLE tblCurriculoConhecimento ADD INDEX (CampoConhecimento,idCV);
ALTER TABLE tblCadastro_Curriculo_Incompleto ADD INDEX (Sexo,Ativo,Excluido,DtNascimento,DataUpdate,DataCadastro,Estado,Cidade,TipoDeficiencia,Instituicao,Curso,Dia,Ano,Nome,CPF,Email);
O cv.IdCV é um PRMARY KEY. Eu adicionei no INDEX campos a mais em relação a esta consulta, porque em certos momentos eles serão usados. O EXPLAIN tá me retornando isso:
1 SIMPLE cv index PRIMARY Sexo1335null203349Usingwhere;Using index;Using temporary;Using filesort
1 SIMPLE cc ref idCV idCV 5 cv.IdCV4Usingwhere;Using index
Eu queria saber aonde estou errando. Porque minha index "Sexo" não está sendo usada corretamente. E como posso melhorar isso.
Pergunta
ndias
Alguém pode me ajudar?
Tenho a seguinte query:
Que em 40s me retorna isso:
Access 53593 42482 8937 2174 ASP 13271 12963 241 67 AutoCad 20740 15637 3335 1768 C 15261 13903 1093 265 CMais 15666 14284 1118 264 Cobol 12826 12670 109 47 CorelDraw 22418 18069 3192 1157 CSS 33043 27538 4350 1155 Dbase 13049 12839 167 43 Delphi 13226 12901 248 77 Dreamweaver 16216 14578 1223 415 Excel 110420 50002 43771 16647 Flash 17492 15713 1370 409 HTML 50819 38377 9210 3232 Java 15566 14204 1092 270 JavaScript 37677 31640 4869 1168 Linux 19782 17101 2141 540 Macintosh 15491 14245 854 392 MSSQLServer 32612 28300 3625 687 MySQL 32499 27919 3786 794 Net 13734 13095 472 167 Oracle 13711 13240 400 71 Outlook 31534 17714 8555 5265 Photoshop 25695 19547 4478 1670 PHP 14189 13439 594 156 PowerPoint 108758 46837 41646 20277 Sharepoint 12803 12657 102 44 Windows 34045 16383 10059 7603 Word 112999 39167 45279 28554
Para esse resultado eu criei os índices:
O cv.IdCV é um PRMARY KEY. Eu adicionei no INDEX campos a mais em relação a esta consulta, porque em certos momentos eles serão usados. O EXPLAIN tá me retornando isso:
Eu queria saber aonde estou errando. Porque minha index "Sexo" não está sendo usada corretamente. E como posso melhorar isso.
Por favor.
Obrigado,
Editado por ndiasLink para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.