FAQ |
Calendar |
![]() |
|
Programming Share, tanya jawab, saling bantu antar programmer dengan berbagai macam bahasa pemrograman. |
![]() |
|
Thread Tools |
#1
|
|||
|
|||
![]()
gan ane mau tanya dnk ane ada SP : Spoiler for SP: Code: ALTER PROCEDURE [dbo].[PmyProc] ( @grup varchar(50) = NULL, @branch varchar(50) = NULL, @tahun varchar(3) = NULL, @obj VARCHAR(4) = NULL ) AS SET NOCOUNT ON IF @branch = '' OR @branch = '0000' BEGIN SET @grup = NULL END IF @grup = '' BEGIN SET @grup = NULL END IF @tahun = '' BEGIN SET @tahun = NULL END SELECT distinct c.xx, c.xx2 FROM dbo.tbl1 (NOLOCK) a INNER JOIN dbo.tbl2 (NOLOCK) b ON a.dealer = b.dealer AND a.cabang = b.cabang INNER JOIN dbo.tbl3 (NOLOCK) c ON c.xx = b.xx LEFT OUTER JOIN dbo.tbl4 (NOLOCK) d ON b.dealer = d.dealer AND b.cabang = d.cabang LEFT OUTER JOIN dbo.tbl5 (NOLOCK) e ON d.grup = e.grup WHERE a.f4 = 1 AND ( @Grup IS NULL Or (e.Grup = @Grup AND e.f5 = 1 AND d.f6 = 1) Or b.dealer = @Grup ) AND ( @branch IS NULL Or b.cabang = @branch ) AND ( @tahun IS NULL Or b.tahun = @tahun ) AND ( @obj IS NULL Or b.obj = @obj ) trus ane jalankan dengan parameter Code: exec myProc @branch='0000',@Group='JA20',@Obj='001',@tahun='20 11' setelah ane jalankan dengan code diatas, jasil querynya baru keluar setelah 40 detik an Sedangkan dengan parameter yg sama, ane jalankan isi dari SP diatas secara langsung tanpa pake SP dengan paramter yang sama... hasil nya lsg keluar setelah 0-1 detik query yang ane pake : Spoiler for query: Code: Declare @HQBranchID VARCHAR(50), @GroupID VARCHAR(50), @ObjectCode VARCHAR(3), @YearPoint VARCHAR(4) SET @branch= '0000' SET @Group = 'JA20' SET @Obj = '001' SET @tahun = '2011' SET NOCOUNT ON IF @branch = '' OR @branch = '0000' BEGIN SET @grup = NULL END IF @grup = '' BEGIN SET @grup = NULL END IF @tahun = '' BEGIN SET @tahun = NULL END SELECT distinct c.xx, c.xx2 FROM dbo.tbl1 (NOLOCK) a INNER JOIN dbo.tbl2 (NOLOCK) b ON a.dealer = b.dealer AND a.cabang = b.cabang INNER JOIN dbo.tbl3 (NOLOCK) c ON c.xx = b.xx LEFT OUTER JOIN dbo.tbl4 (NOLOCK) d ON b.dealer = d.dealer AND b.cabang = d.cabang LEFT OUTER JOIN dbo.tbl5 (NOLOCK) e ON d.grup = e.grup WHERE a.f4 = 1 AND ( @Grup IS NULL Or (e.Grup = @Grup AND e.f5 = 1 AND d.f6 = 1) Or b.dealer = @Grup ) AND ( @branch IS NULL Or b.cabang = @branch ) AND ( @tahun IS NULL Or b.tahun = @tahun ) AND ( @obj IS NULL Or b.obj = @obj ) Yang menyebabkan SP lama adalah Code: @branch IS NULL Or b.cabang = @branch karena nilai @Branch adalah '0000' maka dari query diatas nilai @branch ane diset menjadi null bagian inilah yg menyebabkan SP ane menjadi lama pertanyaan yg ingin nyubi tanyakan adalah : kenapa pas di SP, hasil baru keluar setelah 40an detik sedang pada query langsung, hasil sudah keluar dalam waktu kurang dari 1 detik |
![]() |
|
|