Il s'agit d'une question de suivi/publication à une autre question; comme j'ai découvert une solution qui m'a conduit à un nouveau problème.Suivi: Tableau par type de béton Performance/Mise à l'échelle
Classes to Entities; Like-class inheritence problems
Nous construisons ce système de jeu, pour ainsi dire; et j'utilise le concept de Table par type de béton pour effectuer la modélisation de l'héritage.
Mon souci est l'évolutivité et la performance. Je crois que j'ai utilisé une technique similaire auparavant et il est sorti assez lent, mais je ne suis pas un bon DBA, je suis un programmeur. Donc, je suis très étranger à la façon dont cela se traduira en SQL. Mais fondamentalement, il me semble que ce serait lent et faible d'avoir autant de requêtes 'liées' fonctionnant ensemble. J'ai posté mon schéma de schéma et d'entité pour référence. Si je peux donner des informations plus claires, s'il vous plaît demandez, car je ne suis pas vraiment certain de ce qui est pertinent pour «régler» cette approche.
alt text http://img46.imageshack.us/img46/1043/database.png
alt text http://img293.imageshack.us/img293/6454/entities.png
utilisation de l'échantillon serait typique comme suit;
static void Main(string[] args)
{
DataContext db = new DataContext();
Character character = new Character()
{
Name = "First",
Ring = new Mapping.Ring()
};
character.Ring.Keys.Add(
new Random()
{
Dice = 2,
Sides = 30,
});
character.Ring.Keys.Add(
new Measure()
{
Maximum = 100,
Minimum = 0
});
character.Ring.Keys.Add(
new Measure()
{
Maximum = 100,
Minimum = 0
});
db.Characters.AddObject(character);
db.SaveChanges();
foreach (Character c in db.Characters)
{
Console.WriteLine(c.Name);
Console.WriteLine(new string('-', 80));
foreach (Measure k in c.Ring.Keys.OfType<Measure>())
Console.WriteLine(String.Format("{0}/{1}", k.Minimum, k.Maximum));
foreach (Random k in c.Ring.Keys.OfType<Random>())
Console.WriteLine(String.Format("{0}d{1}", k.Dice, k.Sides));
}
Console.ReadLine();
}
Y a-t-il de bons outils pour mesurer ce genre de chose? – Ciel
SQL Profiler qui fait partie de SQL Server est un bon outil pour commencer. –