Desempenho de aplicação com Stored Procedures

20/01/2015

Bom dia pessoal,

tenho uma dúvida em relação ao desempenho da aplicação, onde eu faço todos os procedimentos de Insert, Update e Delete por Stored Procedures.
A aplicação realmente perde em desempenho, ou não tem nenhum problema?

Segue exemplo do código SQL:

ALTER PROCEDURE [dbo].[spInserirPessoaFisica]

	@Nome AS VARCHAR(50),
	@CPF AS VARCHAR(11),
	@RG AS VARCHAR(20),
	@DataNascimento AS DATE

AS 
BEGIN

	--EXCEÇÃO
	BEGIN TRY
		--TRANSAÇÃO
		BEGIN TRAN

			--VERIFICA SE EXISTE UM CPF JÁ CADASTRADO.
			IF(EXISTS(SELECT IdPessoaFisica FROM tblPessoaFisica WHERE CPF = @CPF))
			BEGIN
				RAISERROR('CPF já existente!', 14, 1);
			END

			DECLARE @IdPessoa AS INT;

			--1º PASSO: INSERIR NA TABELA tblPessoa
			INSERT INTO tblPessoa (IdPessoaTipo)
			VALUES (1);

			SET @IdPessoa = @@IDENTITY;

			--2º PASSO: INSERIR NA TABELA tblPessoaFisica
			INSERT INTO tblPessoaFisica (IdPessoaFisica, Nome, CPF, RG, DataNascimento)
			VALUES (@IdPessoa, @Nome, @CPF, @RG, @DataNascimento);

			SELECT @IdPessoa AS Retorno;

		COMMIT TRAN

	END TRY

	BEGIN CATCH
		ROLLBACK TRAN
		SELECT 'Erro: ' + ERROR_MESSAGE() AS Retorno;
	END CATCH

END


Agradeço pela ajuda!

Melhor resposta

20/01/2015

Boa tarde, Educs,

já viu esse artigo? mostra uma parte sobre stored procedure

[url]http://www.linhadecodigo.com.br/artigo/540/net-aumentando-o-desempenho-de-suas-aplicacoes.aspx[/url]

Fernanda Acacia

Responder Citar

Outras Respostas

20/01/2015

Isaac Jose

Boa tarde Educs Voce esta colocando um cpf que é campo numerico unico e de comparação como texto. esses campos tem que ter atribuições numericas para ganhar em desempenho. altere o mesmo e tera um ganho exorbitante. outro ponto e se a tabela ou tabelas que sao utilizadas possuem indices se nao os coloque tera outro ganho muito significativo..
obs talvez o seu problema em si nao esteja na Sp e sim na origem .. se seus campos da tabela forem como os que esta chamando na variavel ex rg e cpf como varchar aconsenho estudar uma possivel solução de substituição se nao a orientação acima deve ajudar.

att.

Isaac
Responder Citar

20/01/2015

Marisiana

Bom dia pessoal, tenho uma dúvida em relação ao desempenho da aplicação, onde eu faço todos os procedimentos de Insert, Update e Delete por Stored Procedures. A aplicação realmente perde em desempenho, ou não tem nenhum problema?

Olá!!
É sempre melhor fazer o processamento das instruções SQL direto no banco de dados, pois assim você deixa todo o processamento mais pesado da aplicação em responsabilidade do banco e, dessa forma, tem-se um controle bem mais evoluído na parte administrativa e no controle da performance do banco.
Além de permitir que os recursos do banco sejam mais explorados pelos desenvolvedores.
A aplicação só vai perder em desempenho se as instruções SQL não estiverem otimizadas, estiverem com custo elevados,...
E estes são pontos que são identificados facilmente quando trabalhados direto no banco de dados, pois a ferramenta possui recursos para analisar a performance de cada instrução SQL criada.
Responder Citar

21/01/2015

Educs Currículo

Obrigado a todos pelos esclarecimentos, criei uma visão melhor em relação a dúvida que estava tendo.
Responder Citar

21/01/2015

Fernanda Acacia

De nada educs!!! espero ter realmente contribuido com o link.
Responder Citar

21/01/2015

Marisiana

Por nada! =)
Responder Citar