Limite de quot;orquot;s ou limite no quot;inquot;
Olá Pessoal,
Tenho um banco de dados local e outro na internet. Semanalmente tenho que pegar o conteúdo daqui e atualizar na internet: atualizar, inserir os novos ou excluir da internet os antigos.
Estou com o seguinte problema: eu passo um parâmetro para a select, sendo um widestring. Ela tenta fazer, por exemplo, o seguinte:
Só que a base é muito grande e tem mais de 1500 códigos nesse ´in´.
Estava pensando em trocar esse ´in´ por ´or´, só que não sei se tem limite também...
Obrigada desde já !
:!:
Tenho um banco de dados local e outro na internet. Semanalmente tenho que pegar o conteúdo daqui e atualizar na internet: atualizar, inserir os novos ou excluir da internet os antigos.
Estou com o seguinte problema: eu passo um parâmetro para a select, sendo um widestring. Ela tenta fazer, por exemplo, o seguinte:
delete from academias where codigo in ( :pcods )
Só que a base é muito grande e tem mais de 1500 códigos nesse ´in´.
Estava pensando em trocar esse ´in´ por ´or´, só que não sei se tem limite também...
Obrigada desde já !
:!:
Tathianam
Curtidas 0
Respostas
Rodolpho123
02/04/2007
Tathiana,
O limite estabelecido da cláusula IN na maioria dos bancos é de 1000 registros. Já usando o operador OR, eu não tenho certeza destes limites, mas, não existe outra maneira de vc executar o seu SELECT? Como ´por exemplo, usando um NOT EXSTIS, ou algo parecido? Se vc usar deste jeito que vc está querendo (usando OR) a sua performance do banco vai cair drásticamente. Não sei como está montada a sua estrutura mas não minha opinião, eu evitaria de usar as 2 condições...
O limite estabelecido da cláusula IN na maioria dos bancos é de 1000 registros. Já usando o operador OR, eu não tenho certeza destes limites, mas, não existe outra maneira de vc executar o seu SELECT? Como ´por exemplo, usando um NOT EXSTIS, ou algo parecido? Se vc usar deste jeito que vc está querendo (usando OR) a sua performance do banco vai cair drásticamente. Não sei como está montada a sua estrutura mas não minha opinião, eu evitaria de usar as 2 condições...
GOSTEI 0
Tathianam
02/04/2007
Você pode me dar um exemplo de select com EXISTS ? Realmente não conhecia essa sintaxe ...
GOSTEI 0
Rodolpho123
02/04/2007
Segue o exemplo:
Ao invés de fazer: select a.campo from tabela a where a.idtabela in (select b.idtabela from tabela b) usar o EXISTS select a.campo from tabela a where exists (select b.idcampo from tabela b where b.idcampo = a.idcampo)
GOSTEI 0
Tathianam
02/04/2007
Ah, então eu acho que não vai resolver mesmo.... Pois o conteúdo do [b:eaf399cc88]IN[/b:eaf399cc88] vem de outra base de dados.
Ex: os professores novos estão no firebird, no sistema desktop
O que eu quero atualizar são os dados do site, uma base SQL Server, no provedor...
Dá pra fazer assim?
Ex: os professores novos estão no firebird, no sistema desktop
O que eu quero atualizar são os dados do site, uma base SQL Server, no provedor...
Dá pra fazer assim?
GOSTEI 0
Rodolpho123
02/04/2007
Então aí não tem jeito....vai ser demorado mesmo a sua consulta...
GOSTEI 0