Wpis z mikrobloga

#python #programowanie #sql #sqlserver

Piszę sobie skrypt który robi ok. 1000 insertów, w przypadku domowego laba takie zapytanie trwa chwilę ale skrypt docelowo będzie uruchomiony na produkcji gdzie nie ma tak szybkiego połączenia do bazy i chciałbym sobie zasymulować takie środowisko. W jaki sposób mógłbym zasymulować takie produkcyjne środowisko?

- skrypt w pythonie który używa pyodbc
- docker z SQL Server Express postawiony na Synology.
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

W jaki sposób mógłbym zasymulować takie produkcyjne środowisko


@login_zajety_sic: powinienes miec cos takiego jak preprodukcja /stage - czyli odtworzone srodowisko prod bedace jak najblizej warunkow prod ale wiadomo - po kosztach i tam to odpalac

jak nie masz to stawiasz, jak nie mozesz postawic to znaczy ze jestes w januszeksie i nie ma co tego sprawdzac
  • Odpowiedz
@login_zajety_sic: Jeśli możesz, poślij to w jednym zapytaniu, tak aby nie było roundtripa pomiędzy każdym insertem a Twoim kodem. Wtedy prędkość połączenia będzie miała niewielkie zdarzenie, o ile nie insertujesz paruset mega w każdym zapytaniu.
  • Odpowiedz
@GaiusBaltar: No właśnie dumam nad tym żeby to posłać jako jedno duże zapytanie bo obecnie skrypt iteruje po kazdym pliku w folderze i wysyla pojedynczego inserta, dumam nad tym aby skrypt zebral wszystkie inserty do jednego query na koniec iterowania.
  • Odpowiedz
@login_zajety_sic: Jakbyś miał/uzyskał informacje ile zajmuje pojedynczy insert to możesz za pomocą time.sleep() zasymulować czas oczekiwania na odpowiedź od bazy danych. No oczywiście nie musze wspominać że tu aż się prosi o await asyncio.sleep(), dzięki czemu w czasie oczekiwania na odpowiedź od bazy danych mógł byś już robić kolejnego inserta
  • Odpowiedz
możesz za pomocą time.sleep() zasymulować czas oczekiwania na odpowiedź


@Przemosz: weź mu nie podpowiadaj lepiej, nikt w żadnej poważnej firmie tak nie robi, z asyncio tez mozesz go ciekawie wpakowac jesli tam sekwencja idki nadaje np
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@login_zajety_sic: co do polepszenia wydajności to oczywiście jedno zapytanie robiące wszystko. Jak zapytań musi być wiele (np. bazy mają limity) to odpal te inserty w transakcji
  • Odpowiedz
@Saly: Wiesz, ja tu się spuszczam nad tym SQL ale tak naprawdę może się okazać że wystarczy aby skrypt wypluł CSV, ale że nie sprecyzowano do czego ma wypluwać skrypt to robię opcje aby skrypt wypluwał do CSV jak i do bazy.
  • Odpowiedz