Closed ErikZigo closed 5 years ago
jak je to rychlý nezpomalí se to tím? Posílalo to doteď samostatně ty query nebo to nějak dalo v rámci toho spojení? Protože pokud to teď najednou bude volat dvě query navíc tak to půjde znát.
Ale ty dvě query by to mělo dělat jen při spojení. To by nemělo být moc často. Zpomalí se tím asi nejvíc DWHM testy, kde se v rámci testu spojuje a odpojuje spojení několikát, aby se přehodili useři.
Koukal jsem se do query history a pokud jsou ty parametry soucasti DSN stringu, tak interne to v DB dotazy nezavola.
Problem je v tom, ze kdyz zadas do DSN nesmyslnou databazi/warehouse tak ti to stejne vytvori DB spojeni a nic nezahlasi.
Priklad ktery muze nastat.
XY
.YZ
.XZ
. Spojeni se mi vytvori, ale data potecou pres warehouse XY
. Pripadne to muzu hodit na Snowflake support, jestli je to bug, nebo ocekavane chovani.
https://docs.snowflake.net/manuals/user-guide/odbc-parameters.html#optional-connection-parameters
Tu performance jsem řešil hlavně tam kde se snflk komunikuje kbc napřímo v rámci requestu. Hlavně tedy data preview. Tam dvě query navíce klidně můžou jít znát v té odezvě.
A když to nabízejí nastavit takhle v rámci DSN tak bych toho využíval. Jestli to nezařve tak to prosím ověř na supportu jak si navrhoval.
Pokud je to feature tak bych to spíš v té aplikaci kde to potřebuješ ohlídat řešil bokem.
Díval jsem se na jejich další knihovny a očividně to řeší různě https://github.com/snowflakedb
Další jsem nezkoumal. Škoda že na githubu nemají i to ODBC.
Jejich validace funguje na principu že login request do snowflaku vrací mimojiné:
{
"sessionInfo": {
"databaseName": null,
"schemaName": null,
"warehouseName": "NEJAKY_WAREHOUSE",
"roleName": "MOJE_ROLE"
}
}
A oni to tam porovnávají zadané parametry a to co vrátí login request. Nemusí potom volat USER WAREHOUSE|DATABASE
.
Napíšu jim na support. Tohle teda megovat nebudeme.
Fixes https://github.com/keboola/php-db-import/issues/51