Hola Mariano, Investigando sobre el tema vi lo de los indices primarios y secundarios pero no le preste mucha atencion porque no creo que me sirvan para esto ya que los objetos tienen una estructura dispar, por tanto no puedo asumir que todos tendran un mismo elemento indexable. No tengo tres subclases, de hecho, no son subclases y puedo tener, potencialmente, cientos de clases, depende de lo que el usuario quiera definir. En cuanto a tu consejo sobre la eficiencia, se aplica igualmente si tengo diez mil registros o cien millones? Es decir, vos crees que es inadecuado por igual en cualquiera de los casos? Gracias por los articulos, voy a mirarlos. Carlos Peix
_____ De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Jose Mariano Alvarez Enviado el: Jueves, 25 de Septiembre de 2008 06:45 p.m. Para: [EMAIL PROTECTED] Asunto: [dbms] Full text searcy y XML Si lo que quieres es buscar son elementos del XML,debes crear un indice primario sobre el XML y un secundario sobre los elementos.Igualmente me parece que el modelo no es optimo como las columnas de las tablas. Si tienes tres subclases ( en diseño relacional también hay subclases ) usar XML para eso no me parece adecuado. Si aun es el modelo correcto porque debes guardar los datos como XML, sugiero que normalices y lleves esos atributos a columnas, va a ser mucho mas eficiente si buscas usando por contenido parcial con fulltext. . Te paso algo de info XML Best Practices for Microsoft SQL Server 2005 http://msdn.microsoft.com/en-us/library/ms345115.aspx Indexes on XML Data Type Columns http://msdn.microsoft.com/en-us/library/ms191497.aspx -------------------------------- Atte. Ing. Jose Mariano Alvarez SQL Total Consulting On Thu, Sep 25, 2008 at 18:29, Maxi Accotto <[EMAIL PROTECTED]> wrote: > > Hola Carlos, SQL server soporta Xquery y Xpath. Para que esto funcione > de forma rapida seria bueno tener indices. No se bien para que estas > usando el campo XML pero me suena a la representacion de un objeto en > SQL Server, si ese es el objetivo ya te comento que te vas a chocar > con la pared porque la base de datos y el XML dentro no estan > preparados para eso. > > Leete este link que creo te puede ayudar > > http://blogs.solidq.com/ES/glarriera/Lists/Posts/Post.aspx?ID=24 > > El día 25 de septiembre de 2008 15:03, Carlos Peix > <[EMAIL PROTECTED]> escribió: > > Hola DBAs, > > > > Tengo el siguiente escenario: registros una tabla, un campo PK, otro que > > identifica el tipo de registro y otro, de tipo xml, que contiene un xml > > cuyo esquema depende del tipo de registro. Tambien tengo un FTI sobre esa > > tabla, especificamente, sobre el XML. > > > > (pseudo DDL) > > TABLE Registros > > Id uniqueidentifier not null (PK), > > RecordType int not null, > > Data xml not null (FTI) > > > > Ahora necesito hacer un full text search sobre esa estructura, segun el > > siguiente pseudo T-SQL > > > > select * from Registros > > where > > ( RecordType = 1 AND CONTAINS( "Nombre", @searchTerm ) ) OR > > ( RecordType = 2 AND CONTAINS( "RazonSocial", @searchTerm ) ) OR > > ( RecordType = 3 AND CONTAINS( "Observaciones", @searchTerm ) ) > > > > Donde CONTAINS es una construccion ficticia, lo que quiero decir es: > > - Si el tipo de registro es 1 buscame el termino en el campo Nombre > > - Si el tipo de registro es 2 buscame el termino en el campo RazonSocial > > - Si el tipo de registro es 3 buscame el termino en el campo > > Observaciones > > > > Estuve leyendo los excelentes articulos de Mariano en la ultima revista del > > MUG pero no llego a esto :-( > > > > Alguna pista? > > > > Carlos Peix > > > > > > -- > ----------------------------------------------------------- > Microsoft MVP en SQL Server > Consultor en SQLTotalConsulting > Excelencia en servicios y consultoria SQLServer > www.sqltotalconsulting.com > ----------------------------------------------------------- >
