Sémaoptimalizálás – ajánlott eljárások

A táblaséma a tábla összes oszlopának nevét és adattípusát határozza meg. A táblaséma beállítható a tábla létrehozása során, vagy az adatbetöltési folyamat részeként a vonatkozó betöltési leképezés módosításával. A táblaséma definiálásának módja jelentősen befolyásolhatja a lekérdezés teljesítményét. Az adatok ideális sémája számos tényezőtől függ, beleértve a használati esetet, az adathozzáférési mintákat és a tárolni kívánt adatokat. Ez a cikk a teljesítmény hatékony sémák tervezésével történő optimalizálásának ajánlott eljárásait ismerteti.

Adattípusok

Az adattípusokra vonatkozó általános információkért tekintse meg a skaláris adattípusokat.

  • A gyakran használt mezőknek nem dinamikus , hanem beírt oszlopoknak kell lenniük.

  • A dinamikus oszlopokban gyakran keresett vagy összesített JSON-tulajdonságokat a táblázat normál oszlopává kell konvertálni egy konkrétabb típussal, például sztringgel, hosszú vagy valós típussal.

  • A szűréshez és összesítéshez gyakran nem használt ritka oszlopokat tulajdonságcsomagként kell összegyűjteni egy dinamikus oszlopban a DropMappedFieldsleképezés átalakításával.

  • A dátum-idő oszlopokat dátumidőként kell megadni, és nem long vagy más adattípusként.

  • A decimális típus pontos pontosságot biztosít, ami alkalmassá teszi a pontos pontosságot igénylő pénzügyi és egyéb alkalmazások számára. Azonban sokkal lassabb, mint a valódi típus. Csak akkor használja a decimális típust, ha szükséges.

  • Az azonosító (azonosító) oszlopokat sztringként kell beírni, nem numerikusként. Ez a típus sokkal hatékonyabbá teszi az indexet, és jelentősen javíthatja a keresési időt. Emellett engedélyezi a particionálást is, mivel a particionálás csak sztringoszlopokon definiálható. Ha az oszlopban használt lekérdezésszűrők csak egyenlőség alapúak, például ha az oszlop GUID-okat tartalmaz, használhatja a kódolási profilt Identifier. További információ: kódolási szabályzat.

Tables

  • Optimalizálja a több száz oszlopot tartalmazó széles táblákkal szemben előnyben részesített keskeny táblákat.
  • Ha szeretné elkerülni a költséges illesztéseket a lekérdezési idő alatt, a betöltés során bővítve denormalizálhatja a dimenzióadatokat. Ha a bővítéshez használt dimenziótábla frissül, és a forgatókönyv a legújabb értéket igényli, a materializált nézetekkel csak a legújabb értéket tarthatja meg.
  • Ha 20-nál több oszlop létezik, ami azt jelenti, hogy sok érték null értékű, és ezeket az oszlopokat ritkán használják kereséshez vagy összesítéshez, akkor csoportosítsa az oszlopokat JSON-tulajdonságcsomagként egy dinamikus oszlopban az DropMappedFieldsátalakítási leképezés használatával.

Indexelés

Azok a mezők, amelyeken soha nem keresnek, letilthatják az indexelést. A kódolási politika profillal letilthatja az indexelést sztring- vagy dinamikus típusú oszlopokon.