Bazy danych - czysty SQL czy ORM

0

Witam,
Chciałbym dowiedzieć się jak wygląda tworzenie profesjonalnych projektów w firmach od strony baz danych. Czy raczej używa się jakiegoś ORM czy więcej się tworzy zapytań w czystym SQL.
ORM to chyba słabsza wydajność?
Wiem, że to pewnie zależy od firmy. Ale tak poglądowo pytam. Czy startując do pracy jako programista trzeba dogłębnie umieć tworzenie jakiś złożonych zapytań w SQL? Czy wystarczy znajomość języka programowania? Chodzi mi oczywiście głównie o C#.

0

Są firmy siedzące jeszcze mentalnie w latach 80tych i tam się pisze wszystko w bazach, nowocześniejsze firmy używają ORMów. Ja teraz jestem w projekcie, w którym SQL używa się jedynie do jakichś optymalizacji albo robienia czegoś, czego ORM nie potrafi, to jest jakieś <5% kodu dotyczącego bazy danych.

Ale niezależnie od tego SQL trzeba znać, bo bez niego nie da się np. sprawdzić wyników działania aplikacji w bazie danych ani debugować pracy ORMa.

0

@somekind chyba nie chcesz mi powiedzieć, że wszelakie analizy i zestawienia robicie ormem bo jakoś nie chce mi się w to wierzyć :)

0

Nie robimy analiz i zestawień, na razie jesteśmy na etapie CRUD. Do raportowania zapewne zostaną użyte dedykowane narzędzia.

0

co za problem zrobić zestawienie/analizę/cokolwiek innego zapragniesz w ORM? przecież to jest tłumaczone na sql, jeśli są wąskie gardła, to można sprawdzić które zapytania je powodują i albo je podkręcić (dodać brakujący indeks czy zmienić strukturę danych), albo wyjąć z ORM konkretne zapytanie, przepisać je i wykonywać "ręcznie". krytyczne operacje na dużych ilościach danych i tak robi się w całości po stronie bazy.

ORM powoduje, że duża część błędów związanych z bazą danych wychodzi już na etapie kompilacji, co jest bezcenne przy modyfikacjach bazy danych istniejącego dużego programu. poza tym ułatwia i uprzyjemnia pracę z bazą danych, a to oznacza potencjalnie mniej błędów w kodzie.

0

ORM to chyba słabsza wydajność?

Jakiś narzut jest, ale w zamian dostajesz np. cache pierwszego (na poziomie jednej sesji) i drugiego (ogólna, czasem oddelegowana na zewnątrz) poziomu czy lazy loading. Nie robiąc nic albo prawie nic.

1 użytkowników online, w tym zalogowanych: 0, gości: 1