Stored Function İçinde Hata Yönetimi (DECLARE CONTINUE HANDLER)
Stored Function İçinde Hata Yönetimi (DECLARE CONTINUE HANDLER)
Konunun Mimari Önemi ve Temel Çalışma Prensipleri
Stored Function’lar, MySQL’de veritabanı işlemlerini sunucu tarafında yürütme imkanı sağlayan önemli bir bileşendir. Hata yönetimi, bu stored function’ların güvenilirliğini ve performansını iyileştirmek için çok kritik öneme sahiptir. DECLARE CONTINUE HANDLER, MySQL’de hataların ve uyarıların işlenmesi için kullanılan bir mekanizmadır. Bu mekanizma, stored function’ların hatalara karşı daha sağlam ve kontrollü bir şekilde tepkileyebilmesini sağlar.
Kurumsal Projelerde Dikkat Edilmesi Gereken En İyi Pratikler (Best Practices)
- Spesifik Hata Kodlarını Belirle: Her hata için özel bir handler oluşturun. Bu, hataların daha net bir şekilde yönetilmesini ve hata mesajlarının daha anlamlı olmasını sağlar.
- Genel Handlerlar Kullanın: Belirli hatalar için özel handlerlar oluşturmanın yanı sıra, genel bir handler da tanımlayın. Bu, bilinmeyen veya beklenmedik hatalar için bir güvenlik ağı sağlar.
- Hata Günlüğü: Her hata durumunda, hata kodu, hata mesajı ve hata oluştuğu zaman bilgilerini bir günlük tablosuna kaydedin. Bu, hataları tanılamak ve çözmek için çok değerlidir.
- İşlem Geri Alma: Kritik işlemlerde hata olması durumunda, işlemi geri almak için ROLLBACK ifadesini kullanın. Bu, veritabanını tutarlı tutar.
Gerçek Dünya Senaryolarına Uygun Kod Bloğu Örneği
DELIMITER //
CREATE FUNCTION calculate_discount(price DECIMAL(10,2), discount_rate DECIMAL(5,2))
RETURNS DECIMAL(10,2)
DETERMINISTIC
BEGIN
DECLARE result DECIMAL(10,2);
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
BEGIN
-- Hata durumunda işlemi geri al
ROLLBACK;
-- Hata mesajını döndür
SELECT 'An error occurred while calculating discount.' INTO result;
END;
-- İşlemi başlat
START TRANSACTION;
-- İndirim hesaplama
SET result = price * (1 - discount_rate);
-- İşlemi kaydet
COMMIT;
RETURN result;
END //
DELIMITER ;
Performans Optimizasyonu ve Olası Darboğazlar
Stored Function’ların performansını artırmak için, aşağıdaki stratejiler uygulanabilir:
- Optimize SQL Sorguları: Stored Function’lar içinde kullanılan SQL sorgularını optimize edin. İndeksleri doğru şekilde kullanın ve gereksiz sorguları kaldırın.
- Minimize İşlem Sayısı:





