Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 6
  • 154

Odpowiedź (1)

  • 0

Kolumny wyliczeniowe mogą być nie tylko wygodnym, ale i przydatnym narzędziem. Dla wygody, ponieważ użytkownicy do wyciągania danych z tych tabel z innych systemów (np. MS Excel) nie muszą już konstruować być może skomplikowanych obliczeniowo kolumn w kwerendach. Natomiast kiedy to jest konieczność? Najpierw odpowiem na Pana pytanie odnośnie "fizyczności" tych kolumn. Otóż to zależy od tego, jak ustawimy właściwość "Is Persisted". Jeśli ustawimy na "No", to wartości tej kolumny będą obliczane na bieżąco przy każdym zapytaniu o jej wartości (a więc nie będą przechowywane - zapisana będzie tylko definicja kolumny/formuła). Zaoszczędzi to miejsca w bazie, natomiast obciąży jednostkę obliczeniową podczas każdorazowego odczytu danych z takiej tabeli.

Jeśli natomiast ustawimy na "Yes", takie wartości będą fizycznie przechowywane w kolumnie, zużywając pamięć, natomiast podczas dostępu do takiej kolumny nie będzie ona wyliczana, prezentując być może wartości nieaktualne, ale dostępne "od ręki", bez konieczności wykonywania być może złożonych obliczeń przez komputer. Wykorzystuje się to zwłaszcza:

  • gdy trzeba utworzyć indeks na kolumnie wyliczanej. Wtedy "Is Persisted" musi być ustawione na "Yes". Kiedy wartości takiej kolumny zostaną zaktualizowane? Jeśli wystąpi jakikolwiek UPDATE na którejś z kolumn używanych w formule w tej kolumnie wyliczanej,
  • w bazach raportowych - podczas wielokrotnych zapytań o wartości takich kolumn komputer nie musi nic obliczać,
  • w przypadku rzadko lub w ogóle nie zmieniających się wartości - wtedy wystarczy wyliczyć je raz.

 

  • Odpowiedział
  • @ | 08.04.2014
  • TRENER ALTKOM AKADEMII