Sequencia de consulta

SQL Server

24/07/2014

quando se formula um "select" a sequencia dos campos é importante, deixa rapido ou pode deixar lento?
Mariana Carvalho

Mariana Carvalho

Curtidas 1

Melhor post

William

William

24/07/2014

Até onde eu sei a sequência não influência na performance, o que costuma degradar é o famoso e pertinente '*' no SELECT * FROM tabela.

O que vai influenciar diretamente são os campos na cláusula WHERE e se for caso nos JOINS a junção com ON....
GOSTEI 1

Mais Respostas

Marisiana Battistella

Marisiana Battistella

24/07/2014

Reforçando o que o William comentou...
Essa questão do uso do "SELECT * FROM tabela" é considera má prática por muitos DBAs, recomenda-se sempre que se utiliza os nomes de cada coluna que o SQL deve retornar.
GOSTEI 1
João Françozo

João Françozo

24/07/2014

Boa tarde Marisiana,

Realmente quando usamos os nomes das colunas na SELECT deixa o sql mais rápido, se estiver (*) vamos ter que mostrar todas as colunas mesma as quais não nos interessa.


Att.
João Antonio
GOSTEI 1
Mariana Carvalho

Mariana Carvalho

24/07/2014

então não existe no select (where) a questão de ordens? tipo, uma tabela com:

id, nome, endereco, sexo

no select eu coloco os campos nessa ordem:

endereco, sexo, nome, id

não teria diferença se eu colocasse assim:

id, nome, endereco, sexo

???
GOSTEI 0
William

William

24/07/2014

Não tem problema, pode ser em qualquer ordem ...
GOSTEI 0
Thiago Palmeira

Thiago Palmeira

24/07/2014

Vale salientar que em alguns frameworks a maior parte das ViewObject são criadas automaticamente com SELECT (*)...o que acaba prejudicando na performance...
GOSTEI 1
Mariana Carvalho

Mariana Carvalho

24/07/2014

Não tem problema, pode ser em qualquer ordem ...


então, fico agradecida.
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

24/07/2014

Vale salientar que em alguns frameworks a maior parte das ViewObject são criadas automaticamente com SELECT (*)...o que acaba prejudicando na performance...


ai ja entra a linguagem de programação não é?
GOSTEI 0
Thiago Palmeira

Thiago Palmeira

24/07/2014

Sim...
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

24/07/2014

Varallo, esses ViewObject, são especifico de alguma linguagem? e esses cuidados, quem deve tomar o desenvolvedor ou o dba?
GOSTEI 0
Thiago Palmeira

Thiago Palmeira

24/07/2014

Esses cuidados é mais na parte da arquitetura e no desenvolvimento.
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

24/07/2014

poderia estender um pouco sua resposta, não entendi. :-)
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

24/07/2014

Já viram esse artigo? [url]https://www.devmedia.com.br/sql-join-entenda-como-funciona-o-retorno-dos-dados/31006[/url]
GOSTEI 1
Mariana Carvalho

Mariana Carvalho

24/07/2014

ainda não Marisiana, obrigada vou pesquisar mais e ler ele.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

24/07/2014

Vocês comentaram sobre a definição da cláusula WHERE ser bem definida para melhorar a performance....
Utilizar o padrão ANSI ajuda bastante na definição dos JOINS, é altamente recomendado.
Facilita na definição dos JOIN entre as tabelas, principalmente quando tem índices, além de ajudar muito mais na compreensão da lógica do SQL em si, pois separa o "feijão do arroz"...
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

24/07/2014

Marisiana, obrigada li o artigo e ajudou bastante.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

24/07/2014

Por nada! Que bom q te ajudou!
Eu aprendi muito mais de SQL depois q comecei a utilizar o padrão ANSI;
GOSTEI 1
Mariana Carvalho

Mariana Carvalho

24/07/2014

tenho que ler mais.
GOSTEI 0
Alex Lekao

Alex Lekao

24/07/2014

eu tenho essa imagem do artigo salva e utilizo muito para entendimento, muito boa, me exclareceu muito na epoca que consegui. rsrsr

Já viram esse artigo? [url]https://www.devmedia.com.br/sql-join-entenda-como-funciona-o-retorno-dos-dados/31006[/url]


A questao falada pela Marisiana eh bastante importante.

Levando em conta, que se nao me engano no SQL Server, se vc utilizar os scripts, ele armazena em cache na memoria e leva um certo tempo para ele limpar, e com isso vc acaba tendo memoria sendo ocupada com algo desnecessario, com isso seu desempenho cai por mal uso, no caso por nao usar as boas praticas, como ja foi explicado. rsrsr

Espero ter contribuido.

Abraco.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

24/07/2014

Sempre contribui Alex! Obrigada por reforçar o contexto do tópico!
GOSTEI 1
Mariana Carvalho

Mariana Carvalho

24/07/2014

Alex, sempre ajudou!!! obrigada.
GOSTEI 1
Alex Lekao

Alex Lekao

24/07/2014

blz...

Fico feliz.

rsrs
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

24/07/2014

gente, tentando finalizar aqui, obrigada a todos pela ajuda.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

24/07/2014

Por nada!
Quando tiver dúvidas pode criar novas perguntas...
As vezes, nossas dúvidas são as dúvidas de outras pessoas também!
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

24/07/2014

se tem uma coisa de que não tenho vergonha é de perguntar, pode deixar.
GOSTEI 0
David Sylvestre

David Sylvestre

24/07/2014

Já tive diferença de desempenho no order by de uma tabela em um banco de dados sqlserver, porém ao criar um índice ao campo em questão a performasse mudou muito, o que levava antes cerca de 5 min caiu pra 30s
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

24/07/2014

A criação de índices e a utilização correta deles ajuda bastante no resultado da performance.
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

24/07/2014

para testar indices e notar os resultados é bom ter uma tabela com uma enorme quantidade de dados, alguem sabe se aqueles bancos de teste serve para fazer isso?
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

24/07/2014

Você pode verificar a eficiência do SQL pelo custo dele. Quando os indices não são utilizados corretamente o custo do SQL aumenta e a execução se torna mais lenta.
Acredito que possa ser utilizada uma base de testes, desde que ela não esteja tão diferente da base de produção.
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

24/07/2014

sim, na base de produção não mexe até que tenha certeza de 1000%.
GOSTEI 0
Alex Lekao

Alex Lekao

24/07/2014

Oi Mariana,

Vc esta falando da Base AdventureWorks, certo?

Ela nao eh tao grande, e com isso provavelmente vc nao tera uma nocao tao boa dos custos assim.

Uma coisa que vc pode usar que eh muito interessante eh o plano de execucao estimado, com ele vc conseguira perceber o que esta sendo feito em cada tabela, as juncoes, as ordenacoes, etc.

e indica em alguns casos a criacao de indices e ate os cria para vc, se assim vc escolher, eh bem util.

so acho complicado de entende-lo. rsrsr

Abraco.
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

24/07/2014

seria esse banco mesmo, vc teria algum exemplo de como posso fazer isso?
GOSTEI 0
Thiago Palmeira

Thiago Palmeira

24/07/2014

A questão dos índices muitas vezes passa sem nenhuma atenção, pois como não existe análise ou um processo de engenharia é feito de qualquer jeito...
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

24/07/2014

No meu ponto de vista, a criação de índices é responsabilidade de quem cria o banco de dados.
GOSTEI 0
Alex Lekao

Alex Lekao

24/07/2014

Ola bom dia!!!

O plano de execucao Estimado vc executa clicando no icone, exibir plano de execucao estimado(2008R2) ou em consulta, exibir plano de execucao estimado.

ele vai rodar o seu script baseado no plano.

Abraco.

seria esse banco mesmo, vc teria algum exemplo de como posso fazer isso?
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

24/07/2014

apartir desse plano da para ver como o "select" faz o caminho para concluir.
GOSTEI 0
Thiago Palmeira

Thiago Palmeira

24/07/2014

No meu ponto de vista, a criação de índices é responsabilidade de quem cria o banco de dados.


E quando o responsável é alguém que não tem experiência ou conhecimento suficiente, o que faz?
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

24/07/2014

No meu ponto de vista, a criação de índices é responsabilidade de quem cria o banco de dados.


E quando o responsável é alguém que não tem experiência ou conhecimento suficiente, o que faz?


me metendo, eis que surge aquele velho probleminha nas empresas, colocam o faz tudo para solucionar os problemas, nesse caso a deficiencia não é do funcionario mas sim da empresa.
GOSTEI 0
Alex Lekao

Alex Lekao

24/07/2014

Honestamente eu nao entendi muito bem. rsrsr

Mas se nao me engano ele mostra com setas indicando o que esta sendo feito e qual a proxima sequencia.

eu praticamente nao uso, pq quase sempre me perco. rsrsr

abraco.

apartir desse plano da para ver como o "select" faz o caminho para concluir.
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

24/07/2014

então, ele mostra o que está sendo executado como um "grafico" para entender melhor e se dar para melhorar, quis dizer mais ou menos isso.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

24/07/2014

No meu ponto de vista, a criação de índices é responsabilidade de quem cria o banco de dados.


E quando o responsável é alguém que não tem experiência ou conhecimento suficiente, o que faz?


me metendo, eis que surge aquele velho probleminha nas empresas, colocam o faz tudo para solucionar os problemas, nesse caso a deficiência não é do funcionário mas sim da empresa.

Nesse caso, eu penso que é "incompetência" da empresa, porque a responsabilidade da entrega do produto final é da empresa.
Se a empresa não foi capaz de formar uma equipe que garantisse q o processo fosse executado com sucesso, é falha dela. Depois que o produto é entregue é o nome da empresa que é julgado e não dos colaboradores que desenvolveram.
Quando um funcionário não tem experiência suficiente, alguém vai ter q fazer o que ele ainda não está apto a fazer.
O que não pode é deixar o controle de qualidade falhar utilizando a falta de experiência de um dos colaboradores como desculpa.
GOSTEI 1
Mariana Carvalho

Mariana Carvalho

24/07/2014

Concordo, mas é muito delicado essa questão, principalmente para empresas pequenas.
GOSTEI 0
Thiago Palmeira

Thiago Palmeira

24/07/2014

Pois é...
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

24/07/2014

A diferença é que em empresas pequenas, onde um colaborador desempenha mais de uma função, é que esse colaborador terá que se responsabilizar pelas etapas do processo que envolve as tarefas que ele faz. A responsabilidade final é a mesma. É só uma questão de não arrumar tanto motivo pra fugir do q se deve fazer.
GOSTEI 1
Mariana Carvalho

Mariana Carvalho

24/07/2014

Marisiana, imagine, se em empresas grande, até de software houses onde se existe uma equipe, tem problemas, tu imagina em uma uma empresa pequena, com uma equipe de 2 ou 3 funcionarios.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

24/07/2014

Eu acho que depende da liderança da empresa, porque definir padrões e processos em uma empresa que tem menos colaboradores é muito mais fácil do que em uma empresa maior, pois a resistência pode ser maior e tornar tudo mais complicado e mais demorado.
Com poucos colaboradores, fica até mais fácil de ser tomar uma decisão de forma que os colaboradores também opinem na solução.
GOSTEI 1
Alex Lekao

Alex Lekao

24/07/2014

sim.

então, ele mostra o que está sendo executado como um "grafico" para entender melhor e se dar para melhorar, quis dizer mais ou menos isso.
GOSTEI 0
Alex Lekao

Alex Lekao

24/07/2014

Trabalhei em uma Software House pequena e nao tinha padroes.

como eu havia vindo de uma outro SH um pouco maior e estava acostumado a testar os programas e dar suporte, fiz as sugestoes e implementei os padroes, fazendo uso daquilo que eles ja tinham e utilizam, fizemos um mix das duas experiencias e tivemos um bom resultado, percebi que ate depois que eu sai muito do que continuaram usando era daquilo que implementei em conjunto com eles.

Era uma pequena software house, onde tinha 3 desenvolvedores e 2 pessoas no suporte(contando comigo). rsrsr

e neste empresa os processos e procedimentos eram muuuito mais faceis de implementar que na outra um tanto maior. rsrsr
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

24/07/2014

sim.

então, ele mostra o que está sendo executado como um "grafico" para entender melhor e se dar para melhorar, quis dizer mais ou menos isso.


então era isso mesmo que imaginava. obrigada novamente.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

24/07/2014

Trabalhei em uma Software House pequena e nao tinha padroes.

como eu havia vindo de uma outro SH um pouco maior e estava acostumado a testar os programas e dar suporte, fiz as sugestoes e implementei os padroes, fazendo uso daquilo que eles ja tinham e utilizam, fizemos um mix das duas experiencias e tivemos um bom resultado, percebi que ate depois que eu sai muito do que continuaram usando era daquilo que implementei em conjunto com eles.

Era uma pequena software house, onde tinha 3 desenvolvedores e 2 pessoas no suporte(contando comigo). rsrsr

e neste empresa os processos e procedimentos eram muuuito mais faceis de implementar que na outra um tanto maior. rsrsr


Uma reestruturação para implementar processos em uma empresa grande leva muito mais tempo para adequar tudo e sempre gera resistência pelos colaboradores. Eu já vi situações assim e é complicado mesmo..
GOSTEI 1
Mariana Carvalho

Mariana Carvalho

24/07/2014

leva muito tempo mesmo e envolve não só processos, envolve pessoas e a tecnologia.
GOSTEI 0
Alex Lekao

Alex Lekao

24/07/2014

sim. de fato.
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

24/07/2014

sim. de fato.


Na empresa em que trabalha ja ouvi mudanças complexas, seja de sistemas...outros ???
GOSTEI 0
Alex Lekao

Alex Lekao

24/07/2014

Sim.

Fizemos uma migracao de sistema e com o sistema o banco de dados.

Fizemos uma migracao estrutural e de controle de rede.

Migracoes de links e roteadores.

Basicamente isso. rsrsr
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

24/07/2014

ambos são complicados no mesmo nivel? eu acho que banco de dados seja mais complicado.
GOSTEI 0
Alex Lekao

Alex Lekao

24/07/2014

Entao, sao coisas bem distintas.

Como migramos de sistema, migramos de banco, entao foram feitas exportacoes dos dados de um banco para o outro.

No caso de migracoes no mesmo banco, SQL Server para SQL Server, Firebird para Firebird, etc, eh mais tranquilo tendo que tomar cuidado com as particularidades de evolucao das versoes.

No caso de migracao apenas de banco e mantendo a mesma Aplicacao, dara bastante trabalho porque muitas funcionalidades de um banco nao existe no outro, etc.

No caso de migracoes de rede, grupo de trabalho para dominio, etc. tem bastante trabalho, porque ha necessidade de criar todos os controles, acertar todas as estacoes, ensinar pessoal na nova estrutura, definicao de acessoes a arquivos, repositorios, impressoras, etc, etc.

Tanto em um tipo de migracao quanto o outro, ou os varios tipos, tem o treinamento de pessoal e tal e tudo requer tempo e trabalho.

Mas em suma sao bem distintos.

Espero ter ajudado.

Abraco.
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

24/07/2014

Fui meio direta na situação, imagino que são coisas realmente dificeis ambos merecem um certo cuidado, pois mudanças devem ser feitas assim.
GOSTEI 0
Alex Lekao

Alex Lekao

24/07/2014

Sim.

Merecem sim.

Sao bem distintos, e sao bastante interessantes tbm.
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

24/07/2014

Eu queria pelo menos ver esse processo sendo na parte de banco de dados é claro.
GOSTEI 0
Alex Lekao

Alex Lekao

24/07/2014

eu trabalhei em uma empresa que usava tabelas DBF, mudaram para paradox depois para o interbase, depois para firebird(basicamente os mesmos, mas evoluiram um pouco. rsrsr)

Infelizmente eu nao participei das migracoes, trabalhava com suporte e eramos tidos como escoria. kkkkk

Entao deve bastante trabalho sim, vc tem quase que reescrever prodecures, modelagens, etc.

eu acredito que de bastante trabalho. rsrsr
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

24/07/2014

Infelizmente eu nao participei das migracoes, trabalhava com suporte e eramos tidos como escoria. kkkkk


kkkkkkkkk

conheço alguns que sofrem, é um setor/profissionais que merecem mais respeito.

eu imagino como deve ser refazer um banco as pressas, deve ser horrivel.
GOSTEI 0
Alex Lekao

Alex Lekao

24/07/2014

olha... ate hoje praticamente todos os lugares, raras excessoes, havia uma certa rixa em suporte e desenvolvimento. rsrsr

Mas fazer esse tipo de migracao realmente eh horrivel...

Acho que a definicao da modelagem eh o mais trabalhoso e mais chato. rsrsr
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

24/07/2014

Ja me contaram até de rixas entre DBA e Desenvolvedor, nesse caso o desenvolvedor queria acesso ilimitado ao banco ou coisa parecida.
GOSTEI 0
Alex Lekao

Alex Lekao

24/07/2014

vixi... desse ser outra que deve ser um problema tbm...rsrsr
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

24/07/2014

Você imagina, o DBA que tem a responsabilidade de todos os dados da empresa deixar acesso liberado para uma pessoa que não tem profundos conhecimentos, tu acha que vai deixar, se o DBA fosse eu, somente com autorização dos grandes gerentes e tudo muito bem documento para me isentar de qualquer culpa. existe o banco de teste para isso e não o de produção.
GOSTEI 1
Alex Lekao

Alex Lekao

24/07/2014

eh exatamente esse o ponto...

o ambiente de homologacao, ou testes, existe especificamente para isso...

vc pode zuar a vontade, depois que estiver em producao, nem a pau Juvenal. rsrs

acredito que esse tipo de comportamento ou exigencia seja resquicios de tempos de programacao que o desenvolvedor tinha que fazer todo o trabalho no banco que hj eh feito pelo DBA.
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

24/07/2014

Exatamente isso, cada um no seu quadrado, se não tiver um banco de teste pode fazer uma copia do banco e apagar os dados? você sabe não é que nem o DBA pode acessar os dados indiscriminadamente se pode ele deve assinar algum termo.
GOSTEI 0
Alex Lekao

Alex Lekao

24/07/2014

Sim, na pior das hipoteses, cria-se uma copia da base e o cara usa ela para testes, simples assim.

Eh claro que tudo tem que ter criterios, se nao vira bagunca rsrsr, mas de qqr forma na base de producao nao eh lugar de fazer testes. srsr

Nao pouco todo mundo ter acesso total. rsrsr
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

24/07/2014

Se resolve assim mesmo, ainda que fui coerente na minha colocação. geralmente esses ambientes de testes são em outras maquinas fisicas ou virtuais?
GOSTEI 0
Alex Lekao

Alex Lekao

24/07/2014

tudo depende da estrutura.

Eu ja usei base de testes em outros servidores, fisicos, ja usei em um mesmo servidor, mudando apenas o registro da base para a base de teste e hoje as vezes quando preciso fazer testes restauro em uma VM. rssr
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

24/07/2014

Ja deixa uma vm pronta pra isso, é uma vantagem de ter copias de vm com as configurações.
GOSTEI 0
Maria Araújo

Maria Araújo

24/07/2014

A criação de índices e a utilização correta deles ajuda bastante no resultado da performance.


Desculpem interromper aqui, mas alguém me saber esclarecer quando e porquê é boa partica criar indices?
GOSTEI 0
Alex Lekao

Alex Lekao

24/07/2014

Oi Mariana,

Eh bem interessante sim, vc ter uma VM padrao pronta e toda vez que precisar eh so subi-la e fazer o trabalho necessario. rsrsr

Ja deixa uma vm pronta pra isso, é uma vantagem de ter copias de vm com as configurações.



Oi Maria,

Basicamente eh quando vc tem algum campo chave ou principal e que tenha muito uso, com isso vc acaba ganhando em performance nas pesquisas destes campos.

A grosso modo.

Desculpem interromper aqui, mas alguém me saber esclarecer quando e porquê é boa partica criar indices?
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

24/07/2014

A criação de índices e a utilização correta deles ajuda bastante no resultado da performance.


Desculpem interromper aqui, mas alguém me saber esclarecer quando e porquê é boa partica criar indices?


Oi Maria

olha:

[url]https://www.devmedia.com.br/entendendo-e-usando-indices-parte-1/6567[/url]
GOSTEI 0
Alex Lekao

Alex Lekao

24/07/2014

Oi Mariana,

Excelente contribuicao.

o Artigo eh muito bom, nem lembrava de algumas coisa que ele menciona, vi na faculdade... rsrsr, mas honestamente minha cabeca nao suportava. kkkk

Logo no inicio ele ja menciona o motivo basico de criacao dos indices.

Muito bom.

Boa leitura Maria.

Abraco.
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

24/07/2014

Li esse artigo a um mes mais ou menos, precisando ler novamente...rsrsrs
GOSTEI 0
Alex Lekao

Alex Lekao

24/07/2014

normal...

tem tanta coisa que eu leio e depois nao lembro mais nada. kkkk
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

24/07/2014

normal...

tem tanta coisa que eu leio e depois nao lembro mais nada. kkkk


Acho que isso é normal para quem estuda muitos assuntos...

Maria, depois diga o que achou do artigo.
GOSTEI 0
POSTAR