Miksi SQL:llä lasketaan tulokset?

Onko normaalia, että tietokannasta saatavan datan laskeminen tehdään SQL:llä? Pystyin nimittäin helposti laskemaan tulokset kunhan luin datan ohjelmointikieleen ja syötin datan laskukaavaan, mutta mulle sanottiin, että laskenta pitäisi tehdä SQL:llä. Tämä monimutkaistaa kyselyä huomattavasti.
10248
Äänestä

Muut lukivat myös

Vastaukset 10

Vanhimmat

Mitä jos syöttäisit sen datan hanuriin ja laskisit siellä?

Äänestä

Jos+sen+pystyy+tekemään+sql:llä..+Useinkaan+laskentaa+ei+pysty+tekemään,+vaan+käyetään+jotain+matematiikka-kieltä.+Nämä+vain+tuppaavat+olemaan+kalliita+lisensseiltään,+eikä+oikein+tästä+syystä+haluttaisi+niitä+käyttää.+Myöskään+kovin+moni+ei+niitä+osaa+tarpeeksi+laajasti.+++Kai+tuossa+perimmäisenä+taustasyynä+on+se,+että+omasta+ohjelmastasi+ei+voi+koskaan+olla+100%+varma,+miten+se+toimii.+Sen+sijaan+tietokantaoperaatiot+on+todistettu+oikeiksi+jo+aikoja+sitten+ja+jos+kaava+on+oikea+-+on+lopputuloskin.+Ja+jos+laskenta+menee+haun+yhteydessä,+se+ei+hidasta+itse+toimintaa.

Äänestä

Kannattaa mieluummin laskea housuihin

Äänestä

SQL database enginet on optimoitu äärimmilleen ja aina kun vain mahdollista kannattaa suorittaa operaatiot sillä puolella kuin ruveta itse väkertämään koodilla.

Äänestä
  • Pahimmillaan sovelluksissa mennään heittelemään sovelluslogiikkaa sekä tietokantaan että varsinaiseen sovelluksen ohjelmointikoodiin. Sitten ihmetellään että miten kokonaisuus oikein toimiikaan. Huono arkkitehtuuri.

    Kun kirjoitellaan vielä dynaamista SQL:ää tietokannan puolelle niin mikään OR mäpperi ei sen jälkeen toimi ko. kannan päällä.

    Kannattaa vähän miettiä että koska tuollaiseen oikein ryhtyy.

    Äänestä

  • Näin on ja vaativammissa kyselyissä kannattaa käyttää kannan tarjoamia apuvälineitä kyselyn analysointiin mikäli kysely vaikuttaa hitaalta. Kannattaa myös tehdä yksinkertaisia kuormitustestejä jotta ei tule yllätyksiä tuotannossa.

    Äänestä

Tietokannasta kannattaa hakea oleellinen data eikä alkaa ohjelmointikielessä prosessoimaan sellaista jonka saa kohtuudella sqlssä tehtyä esim. aggregaattifinktioilla, apufunktioilla ja liitoksilla. Kokemuksen karttuessa kyselyt eivät enää tunnu yhtä monimutkaisilta. Mikäli kanta osaa hyödyntää cte kyselyitä, saattaa tämä helpottaa kyselyn jakamista osiin. Myös rekursiota käytetään vaativimmissa kyselyissä. Kannattaa pyytää kokeneempaa kolleegaa katselmoimaan kyselyt niin voi oppia tekemään kyselyistä selkeämpiä. Fiksut sisennykset on hyvä miettiä, ne parantavat ymmärrettävyyttä paljon. Terv. Kokemusta on

Äänestä
  • Business logiikan sotkeminen useampaan paikkaan ohjelmistoa on suolesta. Se ollaan täälläkin nähty.

    Äänestä

Koska tyhmyys. Ohjelman alussa tietokanta kuuluu lukea muistiin kokonaisuudessaan ja ohjelman lopussa muistin sisältö siirretään takaisin tietokantaan. Terveisin VB guru.

Äänestä
  • "ohjelman lopussa muistin sisältö siirretään takaisin tietokantaan"
    Data on yliarvostettua. Tärkeintä, että käyttöliittymä on kiva ja että töissä on kivaa.

    Äänestä

Kommentoi aloitusta


junnudevari kirjoitti:

Onko normaalia, että tietokannasta saatavan datan laskeminen tehdään SQL:llä? Pystyin nimittäin helposti laskemaan tulokset kunhan luin datan ohjelmointikieleen ja syötin datan laskukaavaan, mutta mulle sanottiin, että laskenta pitäisi tehdä SQL:llä. Tämä monimutkaistaa kyselyä huomattavasti.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu