Logical database vs direct access of database table

Hi
I have created a FI report.    I am trying to get data from large FI tables like BSAK, BSEG, BKPF, RSEG.  eventhough there are 10 records as per my criteria, system is taking morethan an hour time even in background processing.  This may be becaz of lot of conditions that I am applying to filter the data.  But still trying to improve the performance
For fetching data which is the better way for getting optimum performance of the report.
a) directly fetching data from database tables
b) using logical database collecting data into an itab
regards,
mallik

Hi,
If you are accessing the database tables more than once with different criteria then definetly it will take more time. In such case write only one Select statement on the table and get all the required data into an internal table and then process this internal table as per your logic.
Use of LDBs is definetly faster but filter conditions might not match with your filter conditions. In such case direct access of database table is preferable but as i said in above paragraph.
thanks,
sksingh

Similar Messages

  • Can midlet directly access a database?

    I'm creating a midlet that connects to a database. Do i need to go through a server and then access the database or can i directly access the database through the midlet?
    Does anyone have a sample code that have a midlet interacts directly with a database? Or is it impposible to do so without going through a web server.
    Blaise,

    Your message arrived at the rigth address :)
    I am experienced in J2ME programming and made several projects with it including my graduation thesis . (you can check http://2m.turkmenweb.com for my J2ME projects).
    You can directly acces from MIDlet DB, but it is not so reccomended, since mobile devices have certain limitations. When we had to use DB in our J2ME projects(with MIDP1.0 and MIDP2.0) we achieved it by collaboration of JSP with our MIDlet.. That is MIDlet was only sending a URL to Tomcat Server (JSP server) i.e. http://someurl.com/show?task=topusers, and this URL was parsed by a Servlet which was making all needed conenctions to DB.
    I also know that there are K editions (very small) of DBMS built especially for mobile devices. You can use them also .. I guess Oracle has such a thing..
    Good luck!
    Muhammed Mamedov
    [email protected]

  • Direct Access to Database in JDeveloper 11g TP4@FusionWebApplication?

    Hi,
    i have added a Database (Application Resources --> Connection --> Database --> "myDB") to my Application. I can creat Business Components et cetera with the wizard... all works...
    Now I have a simple Java-Class and i want a access to one table in my Database... must i creat a new Connection like
    Connection c = DriverManager.getConnection("jdbc:oracle:thin:@" + host + ":" + port + ":" + sid, user, pw); (simple java-code)
    or is there a chance for direct access to "myDB"?

    If you just want the connection information raw, you could try something like:
    package test.model;
    import oracle.adf.share.ADFContext;
    import oracle.jdeveloper.db.adapter.DatabaseProvider;
    public class Class1 {
        public static void main(String[] args) throws Throwable  {
              DatabaseProvider cd = (DatabaseProvider)ADFContext.getCurrent().getADFConfig().getConnectionsContext().lookup("scott_local");           
              System.out.println("ConnURL= "+cd.getConnectionURL());
              System.out.println("Host = "+cd.getProperty(DatabaseProvider.HOSTNAME_CLASS_REFTYPE));
              System.out.println("Port = "+cd.getProperty(DatabaseProvider.PORT_CLASS_REFTYPE));
              System.out.println("SID = "+cd.getProperty(DatabaseProvider.SID_CLASS_REFTYPE));
              System.out.println("Username = "+cd.getProperty(DatabaseProvider.USERNAME_CLASS_REFTYPE));
              System.out.println("Password = "+cd.getProperty(DatabaseProvider.PASSWORD_CLASS_REFTYPE));
    }

  • Using TCL to Directly Access Forwarding Databases

    Please can someone tell me if this is even possible with a TCL script on IOS?
    Open a TCP / SSL control channel from the router to an external monitoring server to do the following:
    Reliably replicate the global routing table and VRF routing tables with all information, such as protocol, metrics, next hop, prefix, mask, VRF, etc.
    Poll the global routing table and VRF routing tables for changes and send real time updates when there are changes
    Encapsulate the information into XML so it can be decoded by the monitoring server
    I don’t want to scrape show commands as I don’t believe it would scale or be accurate enough. I’m not even sure if it’s possible to direclty access the forwarding databases (MPLS, routing tables, etc)?  Does TCL only work with CLI output?
    Thanks!
    Richard

    Thanks for your help Joseph. Are there any plans to pass VRF information in the routing detector?
    Are there any other detector subsystems or methods to directly monitor the routing processes? For example by using the Application Detector (event_register_appl) to subscribe to IOS subsystem events and bypass the built in detectors, or use Resource Detector (event_register_resource) to detect a state change?  Even when writing custom TCL scripts are we bound by the predefined event detectors or are there other ways of accessing IOS subsystems?
    I also wondered if it was possible to create an EEM / TCL resource tracker or counter tracker that tracks the routing tables for changes via SNMP. The problem here is I’m not sure if it’s possible to monitor the MIB for specific changes, then poll for that specific change, as opposed to doing a complete SNMP walk? For example, with a number of VRFs and hundreds of thousands of routes I just need to know when there has been a change, and report just that change.
    I could take the output from the Routing Event then SNMP poll the global routing and all the VRFs for that prefix. With a lot of route updates and lots of VRFs there would be a lot of unnecessary SNMP polling (and it probably wouldn’t scale).
    Regarding the SSL limitation it looks like it’s possible (from one of your previous posts) to perform an MD5 hash (maybe even SHA). Therefore I’d expect I can hash the XML payload in the TCP session.
    Thanks again!

  • Users with direct access to tables

    I need to find out which users have direct access to tables, not through the roles.
    Is dba_tab_privs the right table to query or table_privileges is the correct one.
    Please let me know the difference between these two.
    I have gone through the documentation but I am still not clear about the difference between them.
    Let me know whatever your thoughts are on this.
    Thanks,
    Rushi

    Ah, an opportunity to illustrate the value of COMMENTs:
    SQL> select * from dict where table_name = 'TABLE_PRIVILEGES';
    TABLE_NAME
    COMMENTS
    TABLE_PRIVILEGES
    Grants on objects for which the user is the grantor, grantee, owner,
    or an enabled role or PUBLIC is the grantee
    SQL> select * from dict where table_name = 'DBA_TAB_PRIVS';
    TABLE_NAME
    COMMENTS
    DBA_TAB_PRIVS
    All grants on objects in the database
    SQL>So, TABLE_PRIVILEGES is a view relevant to the user who is currently connected and SELECTing from it.
    DBA_TAB_PRIVS is what you want to use to find users with direct access granted to tables.

  • WHY can't I access my database from an applet???????????

    The security code won't let my applet access its own database (from its own server)..
    I'm using getDocumentBase()
    to try and tell it that it is my own damn file..
    I keep getting :
    java.securityAccessControlException: access denied <java.util.PropertyPermission jdbc.drivers write>
    ...etc.
    This applet crap is really starting to piss me off. I can see why they came out with JSP.
    All I need to do is access my database, update it, etc. It kind of defeats the purpose of being able to do jdbc from applets if you can't even access the database on your own damn server.
    If you all don't have a clue, I'm freakin switching to PHP--I'm tired of this crap-I was thinking Java was a damn good language until I hit applets.

    The simple answer to your question is: Because of security concerns.
    The somewhat longer answer is that directly accessing a database from an applet is generally not a good idea. A lot of security-critical code like DB username/password must be hidden in the applet which potentially can be downloaded (and disassembled) by anyone that hits your webpage. Maybe you do an intranet solution with trusted users but that is not what applets were originally designed for.
    The clean way is to make your applet talk to a servlet that talks to your database.
    If that is not the way you want to do it, make sure that all client policy files (yes, on the browser machine) contain the permissions that your applet needs.

  • Access SAP database table from different SAP server

    Hi,
    May i know is that possible to access the SAP database table from server A to server B without write a program on server A? Is it possible for direct access the SAP database table.
    Best regards,
    Gan

    Hello,
    you could use the RFC-Modules RFC_READ_TABLE or RFC_GET_TABLE_ENTRIES on server A.
    Precondition: you need a RFC-Destination from B to A.
    And a little drawback: you get only the first 512 byte of each table entry.
    Regards Wolfgang

  • How to use the same Entity EJB to access the same table in 2 syb databases

    We are trying to convert an application to J2EE. We have the following
    concern. The application requires the use of 10 sybase databases with
    identical tables. One database per branch. We would like to be able to use the same set of entity EJBs to access all databases.
    One solution we can think of is to use bmp entity beans and have a dispatcher session bean pass the database that the entity bean has to connect to.
    Would it work?
    Is there a more elegant way to do this?

    I don't know if there is a more elegant way to do it, but that will work. I have a similar scenario, one database per customer. You'll have to use BMP and get your connections based on the branch.
    Each one of my DAO methods requires that a customer ID be passed in for each method. The customer ID is part of the primary key for each entity bean; therefore, if I need to find a deposit (entity) for a customer, I pass the customer ID and deposit ID to my session facade, create the PK using these, do a findByPrimaryKey, etc. In the ejbLoad, I use the customer ID and the deposit ID to pass into the DAO. There, another class (ConnectionFactory) returns a proper connection based on the customer ID passed, which I use to do my queries.
    Paul

  • New ABAP Program to check Direct UPDATE in Database Table

    Hi all,
    As per customer requirement , I have to develop ONE  Program which find out that  in which ABAP Program , Programmer has used Open Sql command like  UPDATE , DELETE , INSERT , MODIFY to direct update in Database Table.
    Have a look on all Z-ABAPs, find out if there are statements with "update", "delete", "insert" or "modify" in the coding, then find out if updates to sap-Tables are done
    How can I achived that ?
    Please , If anybody is having idea , than please let me know..
    Thanks You ,

    Hi
    Kindly refer to the below link. This has step by step how you can achieve the checks.
    [http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/12659a90-0201-0010-c18b-9d014f9bed0d]
    But if you want to check if any program they have used 'UPDATE' then you can do like below.
    Go to SE38
    Utilities---> Find in Source Code-
    Find --- UPDATE
    In program - Z* or ZX* if you want to search only in Exits
    Regards,
    Vijay V .

  • Connect to the database straight from the direct access of form builder

    What do i have to put in the direct access of form builder and procedure builder to connect to the database without have to do it once i4ve enter into form or procedure builder, I know i have to put user/password and connect string but in which order or which characters do i have to use.
    Thanks in advance.

    thanks jdendas, that works with forms but not with procedure builder, if i put that it does not start the session with the procedure builder.
    Thanks anyway-

  • User Access to all tables of a database

    Hi,
    Is it possible to create a user that has access to all tables in a particular database?  I know I can grant permissions on individual tables, but I would like to create a user that can add, delete, and insert data into any table in the database.  This is easy in MSSQL, but not so easy with MaxDB
    Thanks and Kind Regards,
    Diana Hoppe

    It's not so easy, because it's a nonsense requirement!
    While it may be convenient to be able to just access data and db-objects during development, this becomes a nightmare on production.
    It's far easier and usually better to create schemas to put the database objects in and roles that have the required permissions.
    Then you can grant the roles to the users that need them.
    This way you've cleanly separated the naming (schemas) from the permission (roles/users/grants) aspect.
    A common approach for this is:
    - SYSDBA user (e.g. SUPERDBA) owns the application schemas and can create/alter the objects in it
    - SYDBA also owns the roles and users.
    One step more secure would be to have a specific user own the application schemas - just like it is the case for NetWeaver databases.
    With this, you can have your DBAs have their superuser access to the database and still not the super-easy option to look at the data.
    regards,
    Lars

  • Give user Read-Only access to one table in a database.

    Does anyone know how to give a user account Read-only access to 1 table within a SQL Server Database using SQL Server Management Studio? I don't want the account to be able to access any other tables in the database, just the one table. I'm not a sql programmer,
    so if there is a way to do it in Sql Server Managment Studio settings that would be the best.

    Using Management Studio, I assume you already have a login and user for that person. If not,
    How to: Create a SQL Server Login http://msdn.microsoft.com/en-us/library/aa337562.aspx
    How to: Create a Database User
    http://msdn.microsoft.com/en-us/library/aa337545.aspx
    1. Then, in Object Explorer, expand the Database, expand
    Tables, right-click the table you want, and then click
    Properties. 
    2. On the Permissions page, under Users or Roles, click
    Search, then Browse, etc, until you find the user. Click
    OK until you are back to the Permissions page.
    3. In the Permission for <user>section, find the
    SELECT (that's the read permission) and click the Grant
    box. Then click OK.
    Rick Byham, Microsoft, SQL Server Books Online, Implies no warranty

  • "RUN-TIME ERROR '3078': The Microsoft Access database engine cannot find the input table or query 'name'. Make sure it exists and that its name is spelled correctly.

     When I run the code below I get the following error:"RUN-TIME ERROR '3078': The Microsoft Access database engine cannot find the input table or query 'False'. Make sure it exists and that its name is spelled correctly. Note that I do not call
    anything by the name of "false" anywhere in this code.
    The subject code (the underscored line of code is highlighted in the debugger when the error occurs):
    Option Compare Database
    Private Sub JobAssign_Click()
    MatLotListAvail_openform
    End Sub
    Function MatLotListAvail_openform()
    Dim dbsAPIShopManager2010 As DAO.Database
    Dim rstMaterialLotJobJoint As DAO.Recordset
    Dim strSQL As String
    Set dbsAPIShopManager2010 = CurrentDb
    strSQL = "SELECT * FROM MaterialLotJobJoint WHERE JobID" = "tempvars!JobID" And "MatLotID" = "tempvars!MatLotID"
    Set rstMaterialLotJobJoint = dbsAPIShopManager2010.OpenRecordset(strSQL, dbOpenDynaset)
    If rstMaterialLotJobJoint.EOF Then
    DoCmd.OpenForm "JobAssignMatConf", acNormal, "", "", acEdit, acNormal
    Forms!JobAssignMatConf!PartapiIDVH = TempVars!PartapiID
    Forms!JobAssignMatConf!JobapiIDVH = TempVars!JobapiID
    Forms!JobAssignMatConf!JobIDVH = TempVars!JobID
    Forms!JobAssignMatConf!MaterialLotIDVH = TempVars!MatLotID
    Forms!JobAssignMatConf!Desc = TempVars!MatDesc
    Forms!JobAssignMatConf!recdate = TempVars!recdate
    DoCmd.Close acForm, "MaterialLotListAvailable"
    Else: MsgBox "This material lot has already been assigned to this job."
    DoCmd.Close acForm, "MaterialLotListAvailable"
    End If
    End Function

    I think the SQL statement should be
    strSQL = "SELECT * FROM MaterialLotJobJoint WHERE JobID=" & _
    tempvars!JobID & " AND MatLotID=" & tempvars!MatLotID
    This assumes thatJobID and MatLotID are number fields.
    Regards, Hans Vogelaar (http://www.eileenslounge.com)

  • Accessing large partitioned tables over a database link - any gotchas?

    Hi,
    We are in the middle of a corporate acquisition and I have a question about using database links to efficiently access large tables. There are two geographically distinct database instances, both on Oracle 10.2.0.5 sitting on Linux boxes.
    The primary instance (PSHR) contains a PeopleSoft HR and Payroll system and sits in our data centre.
    The secondary instance (HGPAY) runs a home grown payroll application and sits in a different data centre to PSHR.
    The requirement is to allow PeopleSoft (PSHR) to display targeted (one employee at a time) payroll data from the secondary instance.
    For example in HGPAY
    CREATE TABLE MY_PAY_DATA AS
    SELECT TO_CHAR(A.RN, '00000000') "EMP" -- This is an 8 digit leading 0 unique identifier
    , '20110' || to_char(B.RN) "PAY_PRD" -- This is a format of fiscal year plus fortnight in year (01-27)
    , C.SOME_KEY -- This is the pay element being considered - effectively random
    , 'XXXXXXXXXXXXXXXXX' "FILLER1"
    , 'XXXXXXXXXXXXXXXXX' "FILLER2"
    , 'XXXXXXXXXXXXXXXXX' "FILLER3"
    FROM ( SELECT ROWNUM "RN" FROM DUAL CONNECT BY LEVEL <= 300) A
    , (SELECT ROWNUM "RN" FROM DUAL CONNECT BY LEVEL <= 3) B
    , (SELECT TRUNC(ABS(DBMS_RANDOM.RANDOM())) "SOME_KEY" FROM DUAL CONNECT BY LEVEL <= 300) C
    ORDER BY PAY_PRD, EMP
    HGPAY.MY_PAY_DATA is Range Partitioned on EMP (approx 300 employees per partition) and List Sub-Partitioned on PAY_PRD (3 pay periods per sub-partition). I have limited the create statement above to represent one sub-paritition of data.
    On average each employee generates 300 rows in this table each pay period. The table has approx 180 million rows and growing every fortnight.
    In PSHR
    CREATE VIEW PS_HG_PAY_DATA (EMP, PAY_PRD, SOME_KEY, FILLER1, FILLER2, FILLER3)
    AS SELECT EMP, PAY_PRD, SOME_KEY, FILLER1, FILLER2, FILLER3 FROM MY_PAY_DATA@HGPAY
    PeopleSoft would then generate SQL along the lines of
    SELECT * FROM PS_HG_PAY_DATA WHERE EMP = ‘00002561’ AND PAY_PRD = ‘201025’
    The link between the data centres where PSHR and HGPAY sit is not the best in the world, but I am expecting tens of access requests per day rather than thousands, so I believe the link should have sufficient bandwidth to meet the requirements.
    I have tried a quick test on two production sized test instances and it works in that it presents the data, when I look at the explain plan I can see that the remote database is only presenting the relevant sub-partition over to PSHR rather than the whole table. Before I pat myself on the back with a "job well done" - is there a gotcha that I am missing in using dblink to access partitioned big tables?

    Yes, that's about right. A lot of this depends on exactly what happens in various "oops" scenarios-- are you, for example, just burning some extra CPU until someone comes to the DBA and says "my query is slow" or does saturating the network have some knock-on effect on critical apps or random long-running queries prevent some partition maintenance operations.
    In my mind, the simplest possible solution (assuming you are using a fixed username in the database link) would be to create a profile on HGPAY for the user that is defined for the database link that set a LOGICAL_READS_PER_CALL value that was large enough to handle any "reasonable" request and low enough to quickly kill any session that tried to do something "stupid". Obviously, you'd need to define "stupid" in your environment particularly where the scope of a "simple reconciliation report" is undefined. If there are no political issues and you can adjust the profile values over time as you encounter new reports that slowly increase what is deemed "reasonable" this is likely the simplest approach. If you've got to put in a change request to change the setting that has to be reviewed by the change control board at its next quarterly meeting with the outsourced DBA vendor, on the other hand, you could turn a 30 minute report into 30 hours of work spread over 30 days. In the ideal world, though, that's where I'd start.
    Getting more complex, you can use Resource Manager to kill queries that run too long on the wall clock. Since the network is almost certainly going to be the bottleneck, it's probably unlikely that the CPU throttling is going to do much good-- you can probably saturate the network with a very small amount of CPU. Network throttling in my mind is an extra step up in complexity again depending on the specifics of your particular situation and what you're competing with.
    Justin

  • Can we directly access database by using BI Accelerator ?

    Hi Experts,
    I have several question about BIA NetWeaver2004:
            1. Can we directly accessing database by using BIA?
            2. What is advantage and disadvantage of BIA? Why'd some people rather use BIA than Aggregates?
            3. Could anyone show me the example or demonstration about BIA
    I am a newbie in BI, so please give me information about BIA.
    Thanks a bunch.

    Hi,
    Welcome to SDN. Remember the rule --- before posting, you should search the forum first.
    1. Can we directly accessing database by using BIA?
    ---> No.
    2. What is advantage and disadvantage of BIA? Why'd some people rather use BIA than Aggregates?
    --> search SDN
    3. Could anyone show me the example or demonstration about BIA
    --> search SDN
    Thanks...
    Shambhu
    Edited by: Shambhu Kumar Gupta on Mar 17, 2009 11:22 AM

Maybe you are looking for

  • I have my music on an external drive. I wand to move it back to my startup drive

    I just got a 1tb internal drive for my MacBook. I want to move my music back to it, but not the movies and tv shows. What is the best way to do this?

  • [solved] fastboot and rootdelay kernel option

    hi to all, i was reading about improving boot time in our archwiki. it says to append in /boot/grub/menu.lst two ''magic'' words: fastboot and rootdelay=N where N are seconds to wait before mount the root. then i modify my .lst and perform a boot tim

  • Missing status bar or progress bar

    I just installed Yosemite and I am experiencing a strange problem. Whenever I perform a function that is not quick, like compressing a large folder or copying a large folder to another hard drive, I do NOT see any status or progress bar. Do I need to

  • Crash Report - Adobe Premiere Pro CS6

    I'm not as good at reading these crash reports. Can anyone out there help me understand what happened here? Running OSX 10.8.2 and The latest Version of Premiere 11.0.2 on a early 2011 MBP Process:         Adobe Premiere Pro CS6 [182] Path:          

  • "This feature requires Adobe Flash CS5 or higher to be installed."

    I have Flash CS5 & the Flash Builder 4 Eclipse plugin installed & get the following error when trying to create a "Flash Professional Project" in Flash Builder.  Can someone help me figure out why the two are not seeing each other?