Czym tak naprawdę są kolumny wyliczeniowe? Czy są to fizycznie istniejące kolumny, czy też są wyliczane "na bieżąco"? I czy/do czego warto je stosować?
Czym tak naprawdę są kolumny wyliczeniowe? Czy są to fizycznie istniejące kolumny, czy też są wyliczane "na bieżąco"? I czy/do czego warto je stosować?
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: