Computed column (hesaplanmış sütun), bir veritabanı tablosunda fiziksel olarak saklanmayan, ancak diğer sütunlardaki değerler kullanılarak hesaplanan özel bir sütun türüdür.
2 Tür vardır:
Virtual (Sanal): Değerler her sorgu çalıştığında dinamik olarak hesaplanır. Diskte saklanmaz, bu nedenle ek depolama alanı kullanmaz. Temel sütunlar değiştiğinde otomatik güncellenir.
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
FirstName NVARCHAR(50),
LastName NVARCHAR(50),
FullName AS (FirstName + ' ' + LastName), -- Virtual computed column
Salary DECIMAL(10, 2),
Bonus DECIMAL(10, 2),
TotalEarnings AS (Salary + Bonus) -- Başka bir virtual computed column
);
Sorgu çalıştırıldığında:
insert Employees(EmployeeID,FirstName,LastName,Salary,Bonus)values(1,'YUNUS','YUCEL',
1000,5000)
SELECT FullName,TotalEarnings FROM Employees

Persisted (Kalıcı): Değerler hesaplandıktan sonra diskte saklanır. (performans için) Sorgu performansını artırır (her seferinde hesaplama yapılmaz).PERSISTED anahtar kelimesiyle tanımlanır. PERSISTED olarak işaretlenirse tabloya her kayıt geldiğinde ya da computed column ile ilişkili kolonlar güncellendiğinde hesaplama yapılarak diske yazılma işlemi gerçekleştirilir. Yani PERSISTED olarak işaretlemek INSERT,UPDATE ve DELETE performansını biraz düşüreceği gibi SELECT performansını biraz arttıracaktır.
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
UnitPrice DECIMAL(10, 2),
Quantity INT,
Discount DECIMAL(5, 2),
TotalPrice AS (UnitPrice * Quantity * (1 - Discount)) PERSISTED -- Kalıcı computed column
);
Veri ekleyip sorgulama yaptıktan sonra belirtiğimiz computed kolon yapısının hesaplandığını görmekteyiz.
INSERT INTO Orders (OrderID, UnitPrice, Quantity, Discount)
VALUES (1, 100.00, 5, 0.10); -- %10 indirim
SELECT * FROM Orders;

Avantajları:
- Veri bütünlüğünü sağlar (manuel hesaplama hatalarını önler)
- Kod tekrarını azaltır
- Karmaşık hesaplamaları merkezileştirir
- Performans optimizasyonu sağlayabilir (özellikle persisted computed column’lar)
Computed column’lar SQL Server, PostgreSQL, Oracle gibi birçok modern veritabanı sisteminde desteklenmektedir. Başka makalede görüşmek dileğiyle..
“Şüphesiz güçlükle beraber bir kolaylık vardır. Gerçekten, güçlükle beraber bir kolaylık vardır.” İnşirah 5-6. Ayet