Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 507860
            [titulo] => Desempenho de aplicação com Stored Procedures
            [dataCadastro] => DateTime Object
                (
                    [date] => 2015-01-20 14:24:34
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 337411
            [status] => A
            [isExample] => 
            [NomeUsuario] => Fernanda Acacia
            [Apelido] => 
            [Foto] => tri2.jpg
            [Conteudo] => 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] ) )

Desempenho de aplicação com Stored Procedures

Educs
   - 20 jan 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:
#Código

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!

Post mais votado

Fernanda Acacia
   - 20 jan 2015

Boa tarde, Educs,

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

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

Isaac Jose
   - 20 jan 2015

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

Marisiana
   - 20 jan 2015


Citação:
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.

Educs
   - 21 jan 2015

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

Fernanda Acacia
   - 21 jan 2015

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

Marisiana
   - 21 jan 2015

Por nada! =)