Entity Framework kullanıyorum ve performans hakkında bir sorum var. İşte Linq yöntemleri ekleme vs. saklı yordam ekle
benim linq eklenti yöntemidir:CarTable newCar = new CarTable()
{
CarPlate = plate,
CarModel = model,
CarColor = color,
CarImage = image
};
entity.CarTable.Add(newCar);
entity.SaveChanges();
Ve burada saklı aynı amaçla işlemdir:
CREATE PROC prCreateCar
(@plate NVARCHAR(20),
@model NVARCHAR(50),
@color NVARCHAR(10),
@image NVARCHAR(MAX))
AS
BEGIN
INSERT INTO CarTable
VALUES (@plate, @model, @color, @image)
END
Ve bununla asp.net çağırarak:
entity.prCreateCar('34 F5 3498','Renault Clio','Blue','Images/Cars/clio.png');
Her ikisi de iyi çalışıyor ama burada benim soru ... hangisi daha iyi performans veriyor? Saklı yordamların daha hızlı olduğunu duydum ama doğru mu? Bu doğruysa, SELECT, DELETE, UPDATE ve INSERT gibi tüm koşullarda daha hızlı mı?
olacaktır. Http://stackoverflow.com/questions/14530/linq-to-sql-vs-stored-procedures ve http://stackoverflow.com/questions/752064/performance-difference-between-linq-and-stored-procedures sayfasına bakın. – Habib
Varlık Çerçevesi altında kullandığınız ** gerçek RDBMS **'ye bağlı olacaktır - ancak bu şekilde yapıyorsanız, SQL Server için performansın çok benzer olacağını varsayalım. Her iki yaklaşım da sonuçta, yürütülmesi gereken parametreli bir sorgu ile sonuçlanır - ve her iki yol da, gerektiği gibi yapılırsa, aynı şekilde davranır. –
Ancak dikkat etmeniz gereken bir kelime: * neden * imajınız için 'nvarchar (max)' kullanıyorsunuz!?!?!? Bu bir ** ikili ** veri kümesidir - varbinary (max) '(string tabanlı veri türü yerine) kullanılarak daha iyi sunulacaktır –