Stored Procedure vs SQL query
1] What is the reason for mostly using Procedure instead of sql and main use?
2] How to increase the procedure speed?
> 1] What is the reason for mostly using Procedure instead of sql and main use?
The rule which I often repeat around here (sometimes a couple of times per day):
Maximise SQL. Minimise PL/SQL
In other words, only when the logic is too complex to be dobe efficiently and effectively in SQL, then PL/SQL is used. BUT PL/SQL IS ONLY USED WHEN SQL CANNOT DO THE JOB.
Why? SQL is not what they call a "Turing Complete" language. It is limited in the constructs and logic processing it can do. PL/SQL is otoh a 4GL language (based on the 3GL called Ada). It is "Turing Complete" and can do the complex funky walk.
> How to increase the procedure speed?
By maximising SQL. Treating Oracle data as data sets and not perform row-by-row processing.
Using bulk processing.
By adhering to fundamentals of software engineering.
By reading the Oracle® Database Application Developer's Guide - Fundamentals and applying these.
By reading the Oracle® Database Concepts guide and understanding these concepts.
Oh yeah - the URLs for the docs:
http://download-east.oracle.com/docs/cd/B19306_01/appdev.102/b14251/toc.htm
http://download-east.oracle.com/docs/cd/B19306_01/server.102/b14220/toc.htm
Similar Messages
-
Running a SQL Stored Procedure from Power Query with Dynamic Parameters
Hi,
I want to execute a stored procedure from Power Query with dynamic parameters.
In normal process, query will look like below in Power Query. Here the value 'Dileep' is passed as a parameter value to SP.
Source = Sql.Database("ABC-PC", "SAMPLEDB", [Query="EXEC DBO.spGetData 'Dileep'"]
Now I want to pass the value dynamically taking from excel sheet. I can get the required excel cell value in a variable but unable to pass it to query.
Name_Parameter = Excel.CurrentWorkbook(){[Name="Table3"]}[Content],
Name_Value = Name_Parameter{0}[Value],
I have tried like below but it is not working.
Source = Sql.Database("ABC-PC", "SAMPLEDB", [Query="EXEC DBO.spGetData Name_Value"]
Can anyone please help me with this issue.
Thanks
DileepHi,
I got it. Below is the correct syntax.
Source = Sql.Database("ABC-PC", "SAMPLEDB", [Query="EXEC DBO.spGetData '" & Name_Value & "'"]
Thanks
Dileep -
How to call pl/sql stored procedure in JDBC query dialogbox
Hi,
how to call pl/sql stored procedure in JDBC query dialogbox(reports 9i) .
Cheers,
Raghuplease refer : Re: problem If you have more doubts, please ask in that question.
-
Hi,
I am looking for inputs in tuning stored procedure using sql server 2008. l am new to performance tuning in sql,plsql and oracle. currently facing issue in stored procedure - need to increase the performance by code optmization/filtering the records using where clause in larger table., the requirement is Stored procedure generate Audit Report which is accessed by approx. 10 Admin Users typically 2-3 times a day by each Admin users.
It has got CTE ( common table expression ) which is referred 2 time within SP. This CTE is very big and fetches records from several tables without where clause. This causes several records to be fetched from DB and then needed processing. This stored procedure is running in pre prod server which has 6gb of memory and built on virtual server and the same proc ran good in prod server which has 64gb of ram with physical server (40sec). and the execution time in pre prod is 1min 9seconds which needs to be reduced upto 10secs or so will be the solution. and also the exec time differs from time to time. sometimes it is 50sec and sometimes 1min 9seconds..
Pl provide what is the best option/practise to use where clause to filter the records and tool to be used to tune the procedure like execution plan, sql profiler?? I am using toad for sqlserver 5.7. Here I see execution plan tab available while running the SP. but when i run it throws an error. Pl help and provide inputs.
Thanks,
VijiYou've asked a SQL Server question in an Oracle forum. I'm expecting that this will get locked momentarily when a moderator drops by.
Microsoft has its own forums for SQL Server, you'll have more luck over there. When you do go there, however, you'll almost certainly get more help if you can pare down the problem (or at least better explain what your code is doing). Very few people want to read hundreds of lines of code, guess what's it's supposed to do, guess what is slow, and then guess at how to improve things. Posting query plans, the results of profiling, cutting out any code that is unnecessary to the performance problem, etc. will get you much better answers.
Justin -
How to modify stored procedures in SQL Azure database in SQL server express 2012
Hi,
I want to modify stored procedures in SQL Azure database in SQL Server Express 2012. But when right click on the stored procedure in Object Explorer, there is no option "Modify" as for SQL Server database. I wonder how to modify stored procedures in SQL
Azure database in SQL Server Express 2012. Thanks.
YorkHi,
Not sure whay there is no modify..
As a workaround can you try this and see if you can modify proc..
Script Procedure As-> Alter To->New query window..
- Chintak (My Blog) -
How to add parameters to a stored procedure in B1 Query generator
Dear All,
I made a stored procedure in sql. I'd like to call it from B1. It's working fine when I call like this (I created an empty query in Query generator and paste this) :
exec stproc @projectFrom = '',
@projectTo = 'PRJ03',
@profitCodeFrom = '',
@profitCodeTo = 'uj',
The problem is, Could I call this procedure with parameters like normal queries (select ... where .. = [%0])? Can I pass parameters to it somehow?
Thanks a lot
JaniInside B1 :
DECLARE @return_value int
Declare @Fromdate datetime
declare @Todate datetime
declare @supp nvarchar(15)
SELECT * FROM OINV T0 INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry where
T0.cardcode = '%Supp' and T0.DocDate <=%FromDate
and T0.DocDate >=%ToDate
EXEC @return_value=SQL2XMLforINV
@Fromdate= %FromDate,
@ToDate= %ToDate,
@Supp = '%Supp'
SELECT 'Return Value' = @return_value
And in SQL I have a stored procedure :
Starting like this :
PROCEDURE [dbo].[SQL2XMLforINV]
@Fromdate datetime,
@Todate datetime,
@supp nvarchar(15)
AS
DECLARE @bcpCommand AS varchar(3000)
declare @base nvarchar(50)
BEGIN
SET NOCOUNT ON;
And my error message is in B1 ....
Thanks in advance for your help .... -
Calling a stored procedure on SQL 2008 server
This might be easy one, but I tried different things just cannot get it to work.
I am trying to call a stored procedure in SQL 2008 R2 server using Type 4 driver (sqljdbc4.jar) with JR.
The stored procedure basically has one input and two outputs
ALTER PROCEDURE [dbo].[usp_Example_Master]
@XMLResponse as varchar(max),
@ERROR_NUMBER as int OUTPUT,
@ERROR_MESSAGE as varchar(300) OUTPUT
as
My program.
Connection connection =null
CallableStatement cs =null;
connection = DriverManager.getConnection(url, username, password);
cs = connection.prepareCall("{call dbo.usp_Example_Master(?,?,?)}");
cs.setString(1,requestStr);
cs.registerOutParameter(2, Types.INTEGER);
cs.registerOutParameter(3, Types.VARCHAR);
cs.execute();
============
Error: The output parameter 1 was not registered for output.
But if I added cs.registerOutParameter(1, Types.VARCHAR);
Error: The formal parameter "@XMLResponse" was not declared as an OUTPUT parameter, but the actual parameter passed in requested output
==========
Appreciate any help !Ok. I have an alternative to get it to work now.
Instead of using index number, I am using the parameter name now. It works as expected and more intuitive any way.
Ex.
cs.setString("XMLResponse",req);
cs.registerOutParameter("ERROR_NUMER",Type.INTEGER);
Edited by: 903857 on Dec 21, 2011 2:45 PM -
Error while executing Multiple Stored Procedure through .sql file
Hi Guru's.
I am new to ORACLE. I am facing problem while creating Stored Procedure through .sql file.
I have one test.sql file with Stored Procedure is like,
CREATE OR REPLACE PROCEDURE skeleton1
AS
BEGIN
DBMS_Output.Put_Line('skeleton1');
END skeleton1;
CREATE OR REPLACE PROCEDURE skeleton2
AS
BEGIN
DBMS_Output.Put_Line('skeleton2');
END skeleton2;
Now when i try to execute this test.sql file through SQL PLUS it gives me Error like this
I am opening test.sql file from SQL PLUS,
SQL>
1 CREATE OR REPLACE PROCEDURE skeleton1
2 AS
3 BEGIN
4 DBMS_Output.Put_Line('skeleton1');
5 END skeleton1;
6 /
7 CREATE OR REPLACE PROCEDURE skeleton2
8 AS
9 BEGIN
10 DBMS_Output.Put_Line('skeleton2');
11* END skeleton2;
SQL> /
Warning: Procedure created with compilation errors.
SQL> show errors;
Errors for PROCEDURE SKELETON1:
LINE/COL ERROR
6/1 PLS-00103: Encountered the symbol "/"
SQL>
Please suggest how to create multiple CREATE PROCEDURE using single .sql script file....
Regards,
ShatrughanHi,
Try this
CREATE OR REPLACE PROCEDURE skeleton1
AS
BEGIN
DBMS_Output.Put_Line('skeleton1');
END ;
CREATE OR REPLACE PROCEDURE skeleton2
AS
BEGIN
DBMS_Output.Put_Line('skeleton2');
END;
/Save the file and call it.
Regards,
Bhushan -
Creation of System Stored Procedure in SQL Server 2012 & SQL Server 2012 R2.
Hi all,
I am stuck at a point I am looking for a system stored procedure named 'sp_dboption' in SQL Server 2012 & R2 but could not find.
Searched for it on the net and found that, this stored procedure 'sp_dboption' is now obsolete. So I tried to copy the content of 'sp_dboption' stored procedure from SQL Server 2008 R2 and create new system stored procedure with this name 'sp_dboption' in
SQL Server 2012 but was unable to create the system stored procedure.
Can you guys please tell me how to create system stored procedure in SQL Server 2012 & SQL Server 2012 R2. The reason of why I want to achieve this is because I have used 'sp_dboption' system stored procedure in my application to create a database.
As 'sp_dbotion' stored procedure is present in SQL Server 2008 R2 I am able to create the database in SQL server 2008 R2 but not in SQL server 2012.
Can you please guide me how to create system stored procedure. I am out of luck.
Please assist me, thanks & looking for help at the earliest. Hope someone will come to the fore and help me.Hi Vishwajeet,
If you tried to create any object in the sys schema, you will get the error below.
The specified schema name "sys" either does not exist or you do not have permission to use it.
So I am afraid creating any object in sys schema is not supported by SQL Server. Here is a similar link for your reference.
How to create table in SYS schema in SQL Server?
Though sp_dboption is not in SQL Server 2012, does creating a user-defined one with the same content in 2008 make any difference in your business? You just need to specify the fully qualified name dbname.dbo.sp_dboption.
If you are still interested in creating a system sp_dboption, you can register it with the
sp_ms_marksystemobject.
See
Creating Your Own SQL Server System Stored Procedures.
Eric Zhang
TechNet Community Support -
Stored Procedure in SQL Server 2005
Hi Friends,
when i execute the stored procedure , i can get below error.
Error processing request in sax parser: Error when executing statement for table/stored proc. 'XI_SP_KANLOGDATA_KLOGDATA' (structure 'Statement'): java.sql.SQLException: ERROR: Invalid XML document format for stored procedure: 'type="<SQL-type>"' attribute is missing for element 'table' (Setting a SQL-type (e.g. INTEGER, CHAR, DATE etc.) is mandatory !)
My XML Message below format:
<Statment>
--<dbStmt action="EXECUTE">
---<table>storedprocedurename</table>
---<EMPNO isInput="true" type="char">0001</EMPNO>
---<EMPNAME isInput= "true type="char">Sateesh</EMPNAME>
---<ADDRESS isInput="true" type="char">Delhi</ADDRESS>
--<dbStmt action="EXECUTE">
---<table>storedprocedurename</table>
---<EMPNO isInput="true" type="char">0002</EMPNO>
---<EMPNAME isInput= "true type="char">Sateesh1</EMPNAME>
---<ADDRESS isInput="true" type="char">Bangalore</ADDRESS>
--<dbStmt action="EXECUTE">
---<table>storedprocedurename</table>
---<EMPNO isInput="true" type="char">0003</EMPNO>
---<EMPNAME isInput= "true type="char">Sateesh3</EMPNAME>
---<ADDRESS isInput="true" type="char">Hyderabad</ADDRESS>
</Statement>Hi abishek,
My scenario is basically JDBC(SQL Server)XIJDBC(ORACLE)(Synchronous)
XI pick the date field from JDBC Sender and goes to ORACLE Database and selects records based upon the condition, and response back and put this data into JDBC(SQL Server),
My process successfully upto receive the response from ORACLE system and after response mapping also successful.after that response message is insert into SQL Server.
In SQL server we have two tables,one DATA table and LOG table, If insert the data into DATA table successfully LOG table updated with DATE and STATUS field not successfully insert LOG table update with DATE and Error status field.
So I impleted "stored procedure" in SQL side.
Any way i solved that error.
I am using below XML structure with out table field,i followed below blog.
http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/9618. [original link is broken] [original link is broken] [original link is broken]
My stored procedure name is: XI_SP_KDATA_KLOGDATA
<?xml version="1.0" encoding="UTF-8" ?>
- <ns0:MT_DB_SELECT_REQUEST_response xmlns:ns0="urn:pg-siemens-com:POCA0013:sample1">
- <Statement_response>
- <XI_SP_KDATA_KLOGDATA action="EXECUTE">
<EMPNO type="CHAR">901064</EMPNO>
<EMPNAME type="CHAR">Sateesh</EMPNAME>
<ADDRESS type="CHAR">Hyderabad</ADDRESS>
</XI_SP_KDATA_KLOGDATA>
- <XI_SP_KDATA_KLOGDATA action="EXECUTE">
<EMPNO type="CHAR">901000</EMPNO>
<EMPNAME type="CHAR">Ashish</EMPNAME>
<ADDRESS type="CHAR">Bangalore</ADDRESS>
</XI_SP_KDATA_KLOGDATA>
</Statement_response>
</ns0:MT_DB_SELECT_REQUEST_response>
But again i faced one error in Communication channel
Message processing failed. Cause: com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'XI_SP_KDATA_KLOGDATA' (structure 'Statement_response'): com.microsoft.sqlserver.jdbc.SQLServerException: Procedure or function XI_SP_KANLOGDATA_KLOGDATA has too many arguments specified.
My doubt is above error is Stored procedure error or XML Structure error?
Don't hesitate to clarify me.
Thank you.
sateesh
Edited by: sateesh kumar .N on Mar 4, 2010 11:58 AM
Edited by: sateesh kumar .N on Mar 4, 2010 11:59 AM
Edited by: sateesh kumar .N on Mar 4, 2010 12:00 PM -
How to execute the parametered stored procedure in sql *plus ?
how to execute the parametered stored procedure in sql *plus ?
my storedprocedure format
CREATE OR REPLACE PROCEDURE SMS_SELECTMPLOYEE
(empDOB out date, empEmpName out varchar2)
thanks & regards
mk_murOh, sorry... making many reading-too-fast mistakes today...
You can't declare date variables in SQL*Plus (seel help var), but you can cast to varchar2:
TEST> CREATE OR REPLACE PROCEDURE SMS_SELECTMPLOYEE (empDOB out date, empEmpName out varchar2) IS
2 d date := sysdate;
3 e varchar2(10) := 'bob';
4 begin
5 empdob := d;
6 empempname := e;
7 end;
8 /
Procedure created.
TEST> var d varchar2(30)
TEST> var n varchar2(30)
TEST> call SMS_SELECTMPLOYEE(:d,:n);
Call completed.
TEST> print d n
D
11/07/06
N
bobYoann. -
Debugging stored procedure in SQL Server 2012
Hi,
Please I need your help.
I used to debug stored procedures in SQL server 2008, 2008 R2. I'm debugging the stored procedure using SQL Server management studio. I just create a break point then I click on the debug button
and start debugging without any problems.
I'm talking about my local machine which I have administrator privileges on the machine. My account in the administrators group and I'm assigned in the sysadmin role in SQL server but I couldn't
debug the stored procedure. When I create a break point and try to debug the stored procedure I'm getting a popup screen saying "To continue debugging, the firewall needs to be configured. Configuring the firewall requires privileges."
I tried to figure out the issue but unfortunately until now I'm not able to resolve it.
Thanks.The problem resolved with help of Microsoft support but it was really strange situation.
First, the following is my environment.
OS is Windows 8 Pro
SQL Server 2012
I did try everything firewall, Anti-Virus and other thing as well. I usually type (local) on the server name TextBox. I did close my Anti-Virus program, turn off windows firewall and run SQL server as administrator but I’m still
unable to debug.
I just do one thing and one thing only, changed the (local) on the server name TextBox to the actual server name and everything work fine. I did try that with everything close/open my Anti-Virus program, turn
off/one windows firewall and still work fine, and I was able to debug any T-SQL in SQL server 2012 but run it as administrator.
Anyway, I’m happy to back on the road again.
Thank you every single one of you who try his best to help.
Cheers. -
Does Oracle have Extended Stored Procedure like SQL Server and Sybase?
Hi, i am new to Oracle. I want to know if...
Does Oracle have Extended Stored Procedure like SQL Server and Sybase?
If it does not have, then how can i call outside program written in C or JAVA from the Database stored procedure or trigger?refer to this link on external procedures
http://download-west.oracle.com/docs/cd/A87860_01/doc/server.817/a76956/manproc.htm#11064 -
ALDSP 3.0 -- schema owner for stored procedure or SQL Statement
Using ALDSP, I have a need to create a physical service based on a stored procedure or a SQL statement. I am wondering what will happen when I move to another deployment environment where the schema owner changes. In our QA and Prod environments, we have a different schema owner for all tables in the application (the DBAs believe this prevents unwanted updates to a prod environment). DSP elegantly supports this for normal table- and view-based physical services by mapping schemas through the DSP console after deployment. Will I get the same type of mapping capability for stored procedures and SQL statements? I noticed that I can add a SQL-based function to a physical service...is there a way to pass in the physical table name from that data service to the procedure or SQL statement?
Thanks,
JeffSchema name substitution should work for stored procedures just like it does for tables. If it doesn't - report a bug.
You don't get any help for sql-statement based data services - dsp doesn't parse the sql provided. One thing you could do is use the default schema (following the user of your connection pool), and not specify the schema in your sql-statement. -
How to Migrate Stored procedure on Sql server 2008 to Oracle Database
Guys, I need help vey badly as I am new in this field.
Problem is that, I have to migrate stored procedure on Sql server 2008 to oracle Oracle database:
Whole scenario--
1. Sql Server 2008 application on Windows server (source machine)
2. I have to migrate 70 Stored Procedure
3. To Oracle Database on Linux machine (Target machine)
Any method (no problem)
Please, help me or give me any reference as I don't know which keyword is differ in both database.
Thanks in advanceHi,
You could the free Oracle SQL*Developer to do this.
There is information and a download link here -
Oracle SQL Developer</title><meta name="Title" content="Oracle SQL Developer"><meta n…
and information on using it for migrations here -
http://www.oracle.com/technetwork/database/migration/index-084442.html
You could use it in 2 ways -
1. Go through a migration but just pull the stored procedure code from the file created after you generate the SQL from the SQL*Server database
2. Use the scratch editor accessed from -
- Tools - Migration - Scratch Editor
and paste the SQL*Server stored procedure code into the window and it will convert it to Oracle code. The tool is very good but may have problems if you have very complicated procedures that use SQL*Server specific utilities.
Regards,
Mike
Maybe you are looking for
-
Hello I wonder if anyone knows how to find, download and install a suitable IPA (phonetics) font for the MacBook Air? I need to be able to use a pop up window of fonts.
-
What kind of charger do I need for a 17-inch Macbook Pro?
I have a 4 year old Macbook Pro and the charger just failed on me. I'm looking on the wensite and I see Magsafe 1 and 2 and converters. What do I need for my laptop?
-
Portforwarding to multiple computers using netgear router? Is it possible?
I have a NETGEAR WRG614 wireless router, a G5 iMac 2.0 isight (wired) which is my primary computer, a MBP C2D 2.33 17"(wireless) and a iBook G4 1.33ghz (wireless). I can use iChat no problem as far as text chats go on all machines. I can video chat w
-
I have created table using placeholder data control . I wanted to edit a single column with different components in different rows (not in a single row ). for ex : in a column i want inputfile as well as command link . How should i insert both these
-
Discontinued parts in BoM explosion reports
I am having difficulty with the BoM explosion reports (CS11-13, and CSP1-3), in that they seem to take no notice of discontinuation. In particular we have some assemblies which are discontinued, and replaced by alternative parts with a different sub