Javier publicado en 16-marzo-2007 01:18

Hay mucha información que Dotnetnuke va almacenando de forma dispersa en diferentes tablas. Puedes utilizar estas consultas para hacer cosas interesantes con tu Dotnetuke o simplemente para ver agrupada una información que, normalmente está dispersa...
Puedes descargar este módulo y agregarlo a una página llamada "Control". Para ejecutar las consultas configura varios módulos con las consultas inferiores. De esta forma la información se irá refrescando de forma automática en la instalación On-Line...
http://www.dnnstuff.com/Modules/SQLView/tabid/182/Default.aspx
Última Actividad de Usuarios:
SELECT Users.Username, Users.FirstName, Users.LastName, aspnet_Users.LastActivityDate
FROM aspnet_Users INNER JOIN
Users ON aspnet_Users.UserName = Users.Username
order by aspnet_Users.LastActivityDate DESC
Último Login de Usuarios:
SELECT Users.Username, Users.FirstName, Users.LastName, aspnet_Membership.LastLoginDate
FROM Users INNER JOIN
aspnet_Users ON Users.Username = aspnet_Users.UserName INNER JOIN
aspnet_Membership ON aspnet_Users.UserId = aspnet_Membership.UserId
Páginas vistas por mes
GetSiteLog8 0,'','2005-1-1','2007-12-31' --> El primer parámetro 0 es el ID del portal
Resumen con los enlaces más visitados
SELECT m.ModuleTitle AS Titulo, t.Url AS URL, t.Clicks, t.LastClick AS [Último Click], t.PortalID AS [Portal ID]
FROM UrlTracking AS t INNER JOIN
Modules AS m ON t.ModuleId = m.ModuleID
WHERE (t.PortalID = 1) AND (t.TrackClicks = 1)
ORDER BY t.Clicks DESC
Resumen de los documentos más descargados
SELECT Documents.Title, UrlTracking.Clicks, UrlTracking.LastClick
FROM Documents LEFT OUTER JOIN
UrlTracking ON Documents.URL = UrlTracking.Url Order by urltracking.clicks desc
Ultima visita del bot Google u otros...
select top 1 DateTime, cast(DateDiff(minute,DateTime,getDate())/60.00 as
decimal(9,2) ) AS [Hours Ago]
from sitelog where portalid = 0 <-- Atención aquí tu portalid
and useragent like '%googlebot%'
order by DateTime Desc
Listado de los 20 artículos más vistos (Módulo Ventrian Systems)
SELECT TOP 20 Title as Título,
NumberOfViews as Vistas
FROM DnnForge_NewsArticles_Article
WHERE IsApproved = 1 --Solo articulos aprobados
AND IsDraft = 0 --No borradores
AND StartDate <= GETDATE() --Creado antes de hoy
AND (EndDate IS NULL
OR EndDate >= GETDATE()) --Nunca debe expirar, o continuar activo
ORDER BY NumberOfViews DESC
Listado de los 20 artículos más votados (Módulo Ventrian Systems)
con un contador de los votos emitidos
SELECT TOP 20 a.Title,
COUNT(r.rating) AS "Num. Votos",
AVG(r.rating) AS "Calificación"
FROM DnnForge_NewsArticles_Article a
INNER JOIN DnnForge_NewsArticles_Rating r
ON (a.articleId = r.articleId)
WHERE IsApproved = 1 --Solo articulos aprobados
AND IsDraft = 0 --No borradores
AND StartDate <= GETDATE() --Creado antes de hoy
AND (EndDate IS NULL
OR EndDate >= GETDATE()) --Nunca debe expirar, o continuar activo
GROUP BY a.Title
ORDER BY AVG(r.rating) DESC -- Cambiar a ASC para ver los menos votados
Determinar el tamaño de los objetos en la base de datos por si tu instalación de DNN funciona muy lenta o la base de datos es muy grande.
- Chequea el tamaño de la base de datos (SELECT * FROM Sysfiles)
- Chequea la carpeta \Portals\_default\Logs en busca de los ficheros XML más grandes (> 5MBs)
- ¿Cuantas filas hay en la tabla sitelog? (SELECT Count(*) FROM SiteLog)
- ¿Cuantas filas hay en la tabla ScheduleHistory? (SELECT Count(*) FROM ScheduleHistory)
- ¿Cuantas filas hay en la tabla EventLog? (SELECT Count(*) FROM EventLog)
- Puede usarse exec sp_spaceused <nombretabla> en tablas especificas para averiguar el espacio físico que ocupan, tamaño de los indices y filas
exec sp_spaceused SiteLog
exec sp_spaceused ScheduleHistory
exec sp_spaceused EventLog
Esta consulta la utilizo en www.verweb.com para devolver los 20 últimos portales con actividad reciente por el administrador. Tiene una característica interesante y es que muestra un hipervínculo en el resultado SQL
SELECT DISTINCT '<a target=_Blank HREF=http://' + CAST(dbo.PortalAlias.HTTPAlias AS VARCHAR(50)) + '>' + dbo.PortalAlias.HTTPAlias + '</a>' AS [Dirección Web], dbo.Portals.PortalName AS [Nombre Portal],dbo.Portals.Description AS [Descripcion],
dbo.aspnet_Users.LastActivityDate AS [Última Actividad]
FROM dbo.aspnet_Users INNER JOIN
dbo.Users ON dbo.aspnet_Users.UserName = dbo.Users.Username INNER JOIN
dbo.Portals ON dbo.Users.UserID = dbo.Portals.AdministratorId INNER JOIN
dbo.PortalAlias ON dbo.Portals.PortalID = dbo.PortalAlias.PortalID
ORDER BY dbo.aspnet_Users.LastActivityDate DESC
Referencias
http://www.smart-thinker.com/Resources/SimpleSQL/tabid/267/Default.aspx
http://www.dnnstuff.com/Modules/SQLView/SQLViewSamples/tabid/187/Default.aspx