AprendizNet, ya conociste a u_goldman, jajajaja, a ver como te va, tratenme bien a AprendizNet por favor, es un master en su ramo, y ahora tiene la misión de aprender ASP.NET lo antes posible...
De lo del contador U_G otra opcion como bien apunta aprendiz, es el log, basado en una tabla imagina que siempre haces inserts, inserts, inserts, y al final del dia lo que haces es correr un programa que copia esa tabla a otra temporal y la vacia, recorre esa tabla y crea las estadisticas que necesita, esta info se vacia en otra tabla general, como backup, entonces el performance de la aplicaion del contador de visitas no afecta casi nada a toda la aplicacion, este metodo es muy usado, por eso miras por ejemplo en varios servidores que las estadisticas te las dan siempre al dia siguiente, y no en ese mismo dia, casi siempre se basa en el log de txt, pero con tablas tambien se puede implementar, con esa serie de inserts, bueno, es otra opcion, no dependes de cookies, etc., pero bueno es mucho mas complicado y ocupa mas tiempo.
Por otra parte lo del contador, es mejor si lo implementas en un store procedure, ahi tiene trucos y ya sabes, la eficiencia sera mucho mayor, un truco es algo como...
if @ip <> bloqueada
begin
-- Con un update revisas automaticamente si la existe o no existe
update tabla set [] where ip = @ip and cookie = @CookieID
IF @@error == 0 and ROWCOUNT = 0
begin
-- No se actualizo nada y no hubo ningun error, entonces no se actualizo nada, por lo cual hacemos entonces la insercion de una nueva visita
insert into..... bla bla bla
end
Bueno, creo que ese SP sera mejor, el update te sirve como select y verificador al mismo tiempo, asi te ahorras pasos, claro, cuando no existe pues resulta uina peticion extra, pero igual, si nos ponemos a pensar que cuando no existe de todas formas hacemos un select para investigar que hacer nos fijamos que con el metodo del select siempre tenemos dos peticiones, y con el where tenemos a veces 2 peticiones, y la mayoria de las veces tendremos solamente 1 peticion, ademas por estar todo en el SP todo este proceso sera mucho mas rapido.
Tambien para haerlo mas rapido create un index clustered sobre [paginaID - IP], creo que eso ayudaria mucho...
Por cierto ya me fusile tu codigo, jajajaja, es bueno tener buenas opciones a la mano
Suerte!!