esemény
Csatlakozzon hozzánk a FabCon Vegas
márc. 31. 23 - ápr. 2. 23
A Microsoft Fabric, a Power BI, az SQL és az AI közösség által vezetett végső eseménye. 2025. március 31. és április 2. között.
Regisztráljon még maEzt a böngészőt már nem támogatjuk.
Frissítsen a Microsoft Edge-re, hogy kihasználhassa a legújabb funkciókat, a biztonsági frissítéseket és a technikai támogatást.
A következőre vonatkozik: Azure SQL Database
Az Elastic Database-eszközökkel horizontális adatbázis-megoldásokat hozhat létre. A több szegmenses lekérdezés olyan feladatokhoz használható, mint az adatgyűjtés/jelentéskészítés, amelyek több szegmensre kiterjedő lekérdezés futtatását igénylik. (Kontraszt ez az adatfüggő útválasztással, amely minden munkát egyetlen szegmensen hajt végre.)
Az alábbi kód bemutatja a több szegmenses lekérdezés használatát egy adott myShardMap nevű ShardMap használatával.
using (MultiShardConnection conn = new MultiShardConnection(myShardMap.GetShards(), myShardConnectionString))
{
using (MultiShardCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "SELECT c1, c2, c3 FROM ShardedTable";
cmd.CommandType = CommandType.Text;
cmd.ExecutionOptions = MultiShardExecutionOptions.IncludeShardNameColumn;
cmd.ExecutionPolicy = MultiShardExecutionPolicy.PartialResults;
using (MultiShardDataReader sdr = cmd.ExecuteReader())
{
while (sdr.Read())
{
var c1Field = sdr.GetString(0);
var c2Field = sdr.GetFieldValue<int>(1);
var c3Field = sdr.GetFieldValue<Int64>(2);
}
}
}
}
A fő különbség a több szegmensből álló kapcsolatok kiépítése. Ahol az SQL Csatlakozás ion egy önálló adatbázisban működik, a MultiShard Csatlakozás ion a szegmensek gyűjteményét veszi bemenetként. Töltse ki a szegmensek gyűjteményét egy szegmenstérképről. Ezt követően a rendszer végrehajtja a lekérdezést a szegmensek gyűjteményében az UNION ALL szemantikával egyetlen összesített eredmény összeállításához. Opcionálisan annak a szegmensnek a neve, ahonnan a sor származik, hozzáadható a kimenethez a parancs ExecutionOptions tulajdonságával.
Figyelje meg a myShardMap.GetShards() hívását. Ez a metódus lekéri az összes szegmenst a szegmenstérképről, és egyszerű módot kínál a lekérdezések futtatására az összes releváns adatbázison. A több szegmenses lekérdezés szegmenseinek gyűjteménye tovább finomítható egy LINQ-lekérdezés végrehajtásával a myShardMap.GetShards() hívásából visszaadott gyűjteményen keresztül. A részleges találati szabályzattal együtt a több szegmenses lekérdezések jelenlegi képessége úgy lett kialakítva, hogy több tíz vagy akár több száz szegmens számára is jól működjön.
A több szegmenses lekérdezésre vonatkozó korlátozás jelenleg a lekérdezett szegmensek és szegmensek ellenőrzésének hiánya. Bár az adatfüggő útválasztás ellenőrzi, hogy egy adott szegmens része-e a szegmenstérképnek a lekérdezéskor, a több szegmenses lekérdezések nem végzik el ezt az ellenőrzést. Ez több szegmenses lekérdezésekhez vezethet, amelyek a szegmenstérképről eltávolított adatbázisokon futnak.
A több szegmenses lekérdezések nem ellenőrzik, hogy a lekérdezett adatbázis szegmensei részt vesznek-e a folyamatban lévő felosztási egyesítési műveletekben. (Lásd: Skálázás az Elastic Database felosztási egyesítési eszközével.) Ez inkonzisztenciákhoz vezethet, amikor ugyanazon szegmensből származó sorok ugyanabban a több szegmenses lekérdezésben több adatbázishoz is megjelennek. Vegye figyelembe ezeket a korlátozásokat, és fontolja meg a folyamatos egyesítési műveletek és a szegmenstérkép módosításainak kiürítését több szegmenses lekérdezések végrehajtása közben.
Még nem használ rugalmas adatbázis-eszközöket? Tekintse meg az első lépések útmutatót. Ha kérdése van, lépjen kapcsolatba velünk az SQL Database-hez készült Microsoft Q&A kérdésoldalon, és a funkciókérésekért, adjon hozzá új ötleteket, vagy szavazzon a meglévő ötletekre az SQL Database visszajelzési fórumában.
esemény
Csatlakozzon hozzánk a FabCon Vegas
márc. 31. 23 - ápr. 2. 23
A Microsoft Fabric, a Power BI, az SQL és az AI közösség által vezetett végső eseménye. 2025. március 31. és április 2. között.
Regisztráljon még ma