EDA tabuľkové priestory
Tabuľkové priestory EDA (tablespace) predstavujú spoločné úložisko pre vektory jedného typu. Pre každý typ vektora existuje predvolený tablespace s id 0. Pretože od určitého množstva záznamov v jednom tablespace začína degradovať výkon prístupu a modifikácie dát, je vhodné vytvoriť viacero tablespace a vektory do nich rovnomerne umiestňovať.
Nový tablespace sa vytvára funkciou EDA_CreateTblSpaceRec. Potom, pri vytváraní vektora funkciou EDA_CreateVectorRec, je možné zadať identifikátor tablespace, do ktorého majú byť dáta vektora ukladané. Už existujúce vektory je možné medzi jednotlivými tablespace-ami presúvať pomocou funkcie EDA_MoveVektorInTblSpace. Tablespace je možné zmazať funkciou EDA_DeleteTblSpace, avšak len v prípade, že už neobsahuje žiadne vektory.
Príklad použitia:
BEGIN TEXT _vectorName INT _i, _vectorType, _tblSpaceId, _vectorId, _errorCode RECORD NOALIAS (SD.EDA_CreateTblSpace_Params_V1) _createTblSpaceParams RECORD NOALIAS (SD.EDA_CreateVector_Params_V1) _createVectorParams RECORD NOALIAS (SD.EDA_DeleteVector_Params_V1) _deleteVectorParams _vectorType := 9 _tblSpaceId := 1000 _vectorId := 1000000 _vectorName := "test.vector" _createTblSpaceParams[1]^structVersion := 1 _createVectorParams[1]^structVersion := 1 _deleteVectorParams[1]^structVersion := 1 ; vytvori tablespace pre zmenove vektory CALL %EDA_CreateTblSpaceRec(_tblSpaceId, _vectorType, "test tablespace", _createTblSpaceParams, _errorCode) IF _errorCode != 0 THEN RETURN ENDIF ; vytvori zmenovy vektor v novom tablespace _createVectorParams[1]^tableSpaceId := _tblSpaceId CALL %EDA_CreateVectorRec(_vectorName, _vectorId, _vectorName, _vectorType, _createVectorParams, _errorCode) IF _errorCode != 0 THEN RETURN ENDIF ; presunie vektor do predvoleneho tablespace CALL %EDA_MoveVektorInTblSpace(_vectorId, 0, _errorCode) IF _errorCode != 0 THEN RETURN ENDIF ; zmaze vektor CALL %EDA_DeleteVectorRec(_vectorId, _deleteVectorParams, _errorCode) IF _errorCode != 0 THEN RETURN ENDIF ; zmaze tablespace CALL %EDA_DeleteTblSpace(_tblSpaceId, _errorCode) IF _errorCode != 0 THEN RETURN ENDIF END |
Pridať komentár