AGILIZAR O ACESSO AO BD ACCESS VIA REDE
Citação::
Tenho um BD do Access com uns 300 mb, uso para escrita fiscal, compratilho o BD com 3 computadores, conecto com Dao, ja faz uns 6 anos, agora comecou a ficar um pouco lento, acho que devido ao tamanho do BD.
isso que que não entendo... o meu é de 30mb e tá uma lesma! na rede...
Dentro do BD eu criei algumas Querys e Ãndices o BD access foi feito na versão 2.0
Citação::
Detalhe: O meu BD eu abro ele com DAO deixo o banco e todas as tabelas abertas desde o inicio e só fecho as tabelas e banco ao encerrar o programa.
Dentro do BD eu criei algumas Querys e Ãndices o BD access foi feito na versão 2.0
Versão 2.0 ?
[txt-color=#0000f0]Public Enum[/txt-color] Tipo_Lado
Lado_Servidor = 2
Lado_Cliente = 3
[txt-color=#0000f0]End Enum[/txt-color]
[txt-color=#0000f0]Public Enum[/txt-color] Tipo_CursorType
TC_adOpenForwardOnly = 0
TC_adOpenKeyset = 1
TC_adOpenDynamic = 2
TC_adOpenStatic = 3
[txt-color=#0000f0]End Enum[/txt-color]
[txt-color=#0000f0]Public Enum[/txt-color] Tipo_Travamento
TT_adLockReadyOnly = 1 [ô](padrão)
TT_adLockOptimistic = 3
TT_adLockPessimistic = 2
TT_adLockBatchOptimistic = 4
[txt-color=#0000f0]End Enum[/txt-color]
[txt-color=#0000f0]Public [/txt-color]Conexao [txt-color=#0000f0]As [/txt-color]ADODB.Connection
[txt-color=#0000f0]Public Sub[/txt-color] Main()
AbreBanco BancoDeDados, [Ô]Senha[Ô] [txt-color=#007100][ô]abre banco de dados no formato access[/txt-color]
[txt-color=#0000f0]End Sub[/txt-color]
[txt-color=#0000f0]Public Sub[/txt-color] AbreBanco(NomeDoBanco [txt-color=#0000f0]As String[/txt-color], Optional senha [txt-color=#0000f0]As String[/txt-color])
[txt-color=#0000f0]If[/txt-color] str_conexao_ADO(NomeDoBanco, senha) = [txt-color=#0000f0]True[/txt-color] [txt-color=#0000f0]Then[/txt-color]
[txt-color=#0000f0]Set [/txt-color]RectTMP = MeuRecordset([Ô]SELECT * FROM Configuracao[Ô], 3, , 3)
If RectTMP.Fields([Ô]Vercao[Ô]) > App.Major & App.Minor & App.Revision Then
MsgBox [Ô]Verção não compatével![Ô], vbCritical, [Ô]RM Empresarial[Ô]
[txt-color=#0000f0]end if
end if
end sub[/txt-color]
[txt-color=#0000f0]Function [/txt-color]str_conexao_ADO(DatabasePath [txt-color=#0000f0]As String[/txt-color], senha [txt-color=#0000f0]As String[/txt-color]) [txt-color=#0000f0]As Boolean[/txt-color]
[txt-color=#0000f0]On Error GoTo[/txt-color] TrataErr_DB:
NomeBancoDados = DatabasePath
[txt-color=#0000f0]Set [/txt-color]Conexao = [txt-color=#0000f0]New [/txt-color]ADODB.Connection
.Mode = adModeReadWrite
.Provider = [Ô]Microsoft.Jet.OLEDB.4.0[Ô]
.ConnectionString = [Ô]data source=[Ô] & DatabasePath & [Ô] ;Jet OLEDB:Database Password= [Ô] & _
senha
[txt-color=#0000f0]End With[/txt-color]
str_conexao_ADO = [txt-color=#0000f0]True[/txt-color]
[txt-color=#0000f0]Exit Function[/txt-color]
TrataErr_DB:
Screen.MousePointer = 0
MsgBox [Ô] Nº [Ô] & Str$(Err) & [Ô]: Descrição: [Ô] & Err.Description, 16
Err.Clear
[txt-color=#0000f0]End[/txt-color]
[txt-color=#0000f0]End Function[/txt-color]
[txt-color=#0000f0]Public Function[/txt-color] MeuRecordset(SQL [txt-color=#0000f0]As String[/txt-color], _
[txt-color=#0000f0]Optional [/txt-color]CursorLado [txt-color=#0000f0]As [/txt-color]Tipo_Lado = Lado_Servidor, _
[txt-color=#0000f0]Optional [/txt-color]Cursores [txt-color=#0000f0]As [/txt-color]Tipo_CursorType = 0, _
[txt-color=#0000f0]Optional [/txt-color]travamento [txt-color=#0000f0]As [/txt-color]Tipo_Travamento = 1) [txt-color=#0000f0]As [/txt-color]Recordset
[txt-color=#0000f0]Set [/txt-color]MeuRecordset = [txt-color=#0000f0]New [/txt-color]ADODB.Recordset
MeuRecordset.CursorLocation = 3
MeuRecordset.Open SQL, Conexao, Cursores, travamento
If Error = -2147467259 Then
[txt-color=#0000f0]If [/txt-color]Err.Number <> 5 [txt-color=#0000f0]Then [/txt-color]MsgBox Err.Number & vbCrLf & Err.Description: Err.Clear
[txt-color=#0000f0]End If[/txt-color]
[txt-color=#0000f0]End Function[/txt-color]
com isso eu nao tenho problemas com a conecção...
Seu server possui firewall?
Verificou se os cabos estão funcionando corretamente?
Verificou se não é alguma configuração no switch?
Quais os IPs do servidor e do terminal?
Quando vc envia algum arquivo pela rede demora tbm?
Citação::
Quais os SOs dos seus pcs?
Seu server possui firewall?
Verificou se os cabos estão funcionando corretamente?
Verificou se não é alguma configuração no switch?
Quais os IPs do servidor e do terminal?
Quando vc envia algum arquivo pela rede demora tbm?
sao 3 maquinas.... 1 só para servidor e 2 terminais.... todos com XP SP3... todos com o firewall desativados e sem Anti-Virus
Uso IP fixo em cada um.... servidor (192.168.0.1)... terminais (x.x.x.2 e x.x.x.3)
Antes era um hub, foi colocado um switch simples... daqueles que não precisa configurar nada (fiz um teste sem switch, só no cabo direto e ficou a mesma coisa)
para abrir compartilhamento e enviar arquivos na rede é normal.
já fiz ping 192.168.0.1 e não tem nenhuma perda..
RESUMIDAMENTE, não é na parte tecnica não.
Ontem eu convertir o banco de dados de access 97 para o XP e tirei o DAO 3,51 e coloquei DAO 3.60
Ficou a mesma coisa!
Detalhe: eu não conecto por iP fixo, eu mapeio a unidade de rede e ai conecto, ex: z:\prog\bd.mdb
Estava pensando, o problema pode ser no HD, tentou passar um DEFRAG nele.
Tenta instalar o servidor em outro HD e outro micro pra ver se fica mais rápido.
Citação::
A rede que tenho eu uso SO Windows XP, um computador é Pentium 4 com 1 gb, e outro computador é Dual Core 1 GB.
Detalhe: eu não conecto por iP fixo, eu mapeio a unidade de rede e ai conecto, ex: z:progd.mdb
Estava pensando, o problema pode ser no HD, tentou passar um DEFRAG nele.
Tenta instalar o servidor em outro HD e outro micro pra ver se fica mais rápido.
pensei tb que era o computador... por isso compramos um i3 com 4gb...
já coloquei o bd nas 3 maquinas... e só fica bom na maquina local... as outras que é terminal fica lento