Is it possible to reduce the number of HTTP calls when using a ReportViewer control?

My application is written in .Net 4 using Visual Studio 2010 (version 10 of the ReportViewer control). The report in question contains a lot of data in the dropdowns used for parameter selection. For example, one dropdown contains 95k options and another
uses 24k options (I know this is bad design, but we need to keep it as-is for this release). When I use Fiddler to profile the report, I see that it makes a lot of HTTP calls and a majority return the same dataset. There are three phases of loading data. Each
one initiates a series of HTTP calls.
Loading the initial header with the filter controls (dropdowns, textboxes, etc).
Changing one of the dropdowns that has a dependent dropdown (start date/end date)
Loading the final report after clicking the View Report button
In total, 13 HTTP calls are made and 10 of those are returning the same 10MB of data. The final report only returns 13 records, but the whole process of loading the report filters, changing report filters and loading the report require 130MB of data to be
exchanged. This is an extreme example, but we do have other reports that are doing the same with smaller amounts of data.
My question: is there any way to modify the ReportViewer or the SSRS server to reduce the number of calls? Is this related to ViewState? Please understand that I am new to Reporting Services and have a lot to learn.

Hi rodeofive,
As per my understanding, the issue is a performance issue. And it is caused by there are thousands of values in the drop-down list of parameters in the report.
To work around this issue, I suggest you should make some changes in the report. For example, we can add additional two parameters with multiple keywords ahead, one for the dropdown contains 95k options, another for dropdown contains 24k options. Then all
of available values which are begin with the keywords will display in the parameter list. In this scenario, we can create cascading parameters. One is a keyword parameter, and the other parameter is the drop-down list that based on the keyword to display the
available values.
For more details about the method, please refer to the following FAQ:
http://social.msdn.microsoft.com/Forums/sqlserver/en-US/8de6c783-9cb4-4b95-9be8-b59bc0049866/forum-faqhow-do-i-add-a-search-feature-in-the-parameter-with-long-drop-down-list?forum=sqlreportingservices#8de6c783-9cb4-4b95-9be8-b59bc0049866
Hope this helps.
Thanks,
Katherine Xiong
Katherine Xiong
TechNet Community Support

Similar Messages

  • How to reduce the number of DB calls in Biztalk Map

    Hi,
    I am using the
    1. first scripting Functoid(calling External Assembly)  to fetch the details from DB as comma separated values(1,2,3)
    2. Scripting Functoid to apply Inline XSLT temple(which will pick the comma separated value and place it as three different records)
    Instance messages
    All the items are working as expected but, the call to DB is happening for each record in the details.
    if my input has n number of details section, the database call is happening n times, which is drastically reducing the performance.
    I wanted to make it as one DB call . Please suggest
    Regards, Vignesh S

    Hi,
    You can also use the Blogical BizTalk Database lookup functoid with caching feature.This functoid can be used like the
    Database lookup functoid that ships with BizTalk. It will execute a query against a given database and cache the result using the
    System.Web.Caching.Cache with a sliding expiration of one minute.
    Download:
    https://blogicalfunctoids.codeplex.com/
    Kind regards,
    Tomasso Groenendijk
    Blog 
    |  Twitter
    MCTS BizTalk Server 2006, 2010
    If this answers your question please mark it accordingly

  • Is it possible to force the user to login again when using oauth 2 (implicit grant)

    Hi,
    I'm trying to build an application based on a rest webservice in APEX which is being accessed by a javascript frontend via ORDS. I'm using the "Implicit grant" flow of OAUTH 2.
    When the user is finished with the application, he/she should be able to logout of the application, so another user can login (on the same machine and browser). But, without clearing all cookies, ORDS will automatically give an access token for the previous user, without showing the login screen to allow/deby access to the rest web service.
    (Clearing the cookies is not possible via javascript, since they are httponly)
    I know it is not the "normal" way to use oauth2, but I would like to be able to log-out a user. So how can I force ORDS to show the loginscreen again to give another user the possibility to login?
    Alexander

    You can force the implicit code flow to prompt the user to sign in by including _auth_=force in the approval request query string. To follow the example shown in the developer guide [1]
    change:
    https://server:port/ords/resteasy/oauth2/auth?response_type=token&client_id=CLIENT_IDENTIFIER&state=STATE
    to:
    https://server:port/ords/resteasy/oauth2/auth?response_type=token&client_id=CLIENT_IDENTIFIER&state=STATE&_auth_=force
    [1]: REST Data Services Developers Guide

  • Restricting number of http calls to XI3.0 system

    Hello,
    Is there any way to restrict the number of http calls from a particular source to XI3.0system? For example if client A making 1000 http calls to XI system., I want to restrict the calls of this particular client to only 300 or divide the calls into certain chunks? Please advice.
    Thanks in advance.

    Hi Guys ,
    Because the destination from client 20 to Integration Server is running it can't be a problem with configuration of XI.
    in my opinion it is a network problem or some problems with the Sending ERP System.
    you test also to make a destination from other R/3 systems like CRM right?
    and nothing works?
    Test to send a Message from this server with wfetch, if this will not work.. it must be a network problem.
    Regards,
    Robin

  • How can I reduce the number of lines in live paint?

    I'm trying to use adobe illustrator to color the background of a photograph green while keeping the person in the picture the same color.
    I used live trace to get a vector image and then attemped to use live pain to finish the job, but I end up with thousands of blue lines and gaps that are too small to color in. Is there anyway i can reduce the number of gaps so that i can actually paint the background?
    I've already tried the gap options and adjusting the settings to small medium or large did nothing.
    If this isn't possible, is there any other feature in adobe illustrator that would allow me to achieve my goal?
    I have a photograph with a person in the middle; i want the person to remain the same and the background to be changed to green.
    Thanks for your time.

    Would be easiest to fix this when tracing.
    You could try the magic wand tool to select them (but you'll have to expand the live paint object)

  • How can I reduce the number of event cases in the main VI?

    I would like to reduce the number of event case of the event structure in my main VI. E.g. I would like to have pop up window with a table when the user double click a table row. Nothing more simple than this: add a case to the event structure trigger by double clicking the table, read the table row ... But in my main VI I would have lots of them and the event structure gets crowded with minor tasks. One solution is using XControls. But is there any other recomended way to handle selected events separatly from the event structure in the main VI?
    to clarify: I don't want to distribute the whole event structure. (In this case the code would not be maintainable) But I would like to handle certain context specific events in a differnt place. If I have them all in the main VI the drop down list of the events in the event structure exceeds the windows size and the program becomes difficult to maintain because one looses the overview.

    "Strictly forbidden" is not true. But highly not recommended. The reason is simple:
    1. Code can react unpredictable. Dennis already stated some things about that in your linked thread. 
    2. Code is not readable and therefore not maintainable. Each event source should have only one event structure for its events. Since the UI is a single source, events from there should be captured in a single event structure. It is recommended to use this event structure as producer in a producer/consumer design pattern in order not to block the events.
    3. You will most propably need timeouts in your event structure which completly negates the advantage of event driven programming. Either use event driven programming or stay at polling. Do not mix (most of all because of maintenance).
    Regarding your "advantages" you listed:
    - Clustering  reduces readability in therefore should never be done. Additionally, it requires timeout cases in most places which is not recommended.
    - If you have such many events and interactions in your "sequence", it is a clear indication that you chose the wrong architecture for your application.
    Please see attached example. Since i am not used to program with more than one event structure (except if i have different dedicated event sources), the example is "constructed" and therefore may lack of "realism". Nevertheless, it shows some issues which might occur:
    - Blocking calls within the events lead to the fact that the UI is not responsive for the event time (FuncA). Nevertheless, interaction is still enqueued and if the blocking call is over, all those interaction are executed. In the example, please press FuncA and then press FuncC immediatly. You will see that nothing happens and after the 5s blocking call, the FuncC dialog appears. You also can switch tabs, but the visual display will update only after the 5s blocking call.
    - In order to keep the UI responsive, FuncB is configured not to block the UI. But this is no solution: Press FuncB (on page 2) and the change to page 1 and press FuncA. Additionally, press FuncC. What happens? Just to mess things up, press Stop as well......do this combination several times. It is possible that only the lower loop is finished and the VI is still running even if Stop has been pressed.
    Please note everyone that the attached example shoudl strictly be seen as "NEVER DO IT LIKE THIS". This is a negative example and shows the approach which is not recommended by any means!
    CEO: What exactly is stopping us from doing this?
    Expert: Geometry
    Marketing Manager: Just ignore it.
    Attachments:
    Never EVER86.vi ‏10 KB

  • Reduce the number of Buffer Allocations

    Is there an easy way to find and reduce the number of Buffer Allocations in a LabVIEW application?
    Let me give you some background onto my approach before getting into my issues:  I create a waveform and send it to a PXI-6552 for generation.  At the same time that it outputs this waveform, it is also acquiring another waveform.  I process this acquired waveform's information and then save it to disk.  This loops over and over.
    I want to run this VI for periods of time AT LEAST equal to 24 hours.  (Maybe longer!)
    I know that you can't really control memory management much in LabVIEW, but is there a way to reduce the number of allocations between iterations?  Or, at least, free up some memory between for-loop iterations? 
    When I use the Profile >> Show Buffer Allocations, it seems like everything and their sister VIs all blink with dots.  :/ 
    I would prefer not to run the Memory Profiler and my application for 24 straight hours to examine its memory management and potential to crash.  There has to be a better way to go about this.
    The common places I find these Buffer Allocations are:
    Constants initialized in the loop
    Number to Fractional String VI
    Pretty much every subVI input/output pin
    NI HSDIO functions
    Build array function
    Every numeric multiplication/division function
    Every comparison AND, OR, equal to, etc.
    Am I really, really bad at LabVIEW memory management, or is there something obvious I am missing?  Please help me out   I cannot find much literature on the subject aside from "use the profile tools".
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    If someone helped you out, please select their post as the solution and/or give them Kudos!

    That was very informative.
     I also stumbled upon this by jumping from link to link in the help documents http://zone.ni.com/reference/en-XX/help/371361H-01/lvconcepts/vi_memory_usage/.  So I am reading through this now!
    I also considered running it on a more microscopic scale just to see how rapidly the memory will grow.  It still might be worthwhile to test.
    My question about the "buffers":
    In a textual programming language, I believe I could re-use almost all of the allocated memory without duplication.  Is there a way to analyze the code to check where or if new memory is being allocated?  And is it possible to enforce a waveform data type (I believe its just a cluster) of size X to be over written next iteration by the new waveform data type also of size X?  Or do you believe this might already be happening?
    EDIT:
    I cannot release actual code due to Company policies, but I am using the following general set-up:
    Create a relatively simple I2C waveform using the I2C Waveform Reference Library.  This is passed through a tunnel to the while loop.  I also pass a reference to the NI HSDIO generation and acquisition channels and an error cluster via tunnels as well.
    Within the actual loop, I use the NI HSDIO to send the same waveform every iteration to the PXI.  I use NI HSDIO Fetch Waveform to return a DWDT (digital waveform data type) which is the same size as the original waveform but naturally with different elements.
    I post process this DWDT by converting it to boolean with Digital to Boolean Array VI, a few build arrays, array transpose'es, and comparsion functions.
    Lastly I convert this boolean array into a string of 0's and 1's and then substrings from this string.  (Around 10 per iteration).  These 10 substrings are converted to decimal numbers which are built into an array that is saved to disk with Write Spreadsheet to File .
    I do not use any shift registers or anything.  It contains no inner loops but does use an inner case structure.
    I do not suspect any large allocations before or after this main loop either.
    I also do not have any front panel objects (except for the file path Contol, but this could be set to be a constant if need be.)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    If someone helped you out, please select their post as the solution and/or give them Kudos!

  • Is it possible to change the number of weeks to be displayed in the month view in calendar (mavericks)?

    I'd like to know if it's possible to change the number of weeks to be displayed in the month view in calendar? Thanks!

    No.
    There are up to six calendar weeks that might be used to display the 31 possible days in a month.
    So the month view displays six weeks.

  • HT1338 My mac is becoming too slow. It takes long to open word documents, pdf files or excel documents or even safari. Can anybody suggest something? I have tried to reduce the number of open applications, but does not seem to work.

    My mac is becoming too slow. It takes long to open word documents, pdf files or excel documents or even safari. Can anybody suggest something? I have tried to reduce the number of open applications, but does not seem to work.

    Hi ...
    Checked to see how much free space there is on the startup disk lately?
    Right or control click the MacintoshHD icon. Click Get Info. In the Get Info window you will see Capacity and Available. Make sure there's a minimum of 15% free disk space.
    Freeing Up Hard Disk Space - Mac GuidesFreeing Up Hard Disk Space - Mac Guides
    If disk space is not the issue, booting in Safe Mode deletes system caches that may help.
    A Safe Mode boot takes longer then a normal boot so be patient.
    Once you see the Desktop, click the Apple menu icon top left corner of the screen.
    From the drop down menu click Restart.
    See if that makes a difference ...

  • How do I reduce the number of emails showing on my iPhone?

    How do I reduce the number of emails on my iPhone 5, without deleting the account? It's a POP account.

    You read unread messages to reduce the notifcation number.
    You delete messages to reduce the number showing as available.

  • How do I reduce the number of audio channels in the source or export settings?

    I'. trying to export my finished edit through the "movie" setting but keep getting the message that the number of audio channels to create in the exported file must be equal to, or less than the number of channels in the source. Reduce the number of audio channels in the source. Reduce the number of audio channels in the export settings. I am at a loss as to what this means and how I proceed with it prior to putting it to DVD. Please advise.
    JWooley

    What is your source, sequence settings and export setting. Which version of PP?
    Prefebly a screendump of the export settings box.
    (e.g. trying to export a mono track to 5.1)

  • How do I reduce the number of pixels in my photos?

    How do I reduce the number of pixels in my photos?

    Export them at a smaller size:
    File -> Export - not the options at 'Size'
    Regards
    TD

  • Is it possible to increase the number of authorised computers with itunes.

    Hi with Apple now selling more devices than ever is it possible to increase the number of authorised computers for sharing on iTunes.
    we have 2 x MBP and a 27" iMac 2 x ipads 3 x ipods and 2 x iphones in the house, we would obviously like to share the one account with all of them and I think that seeing the number has not changed in years yet the number of products able to use. It would make sense to at least double the authorised number.

    You are limited to 5 devices. Maybe Home Sharing offers options

  • Is it possible to change the number of rows to be displayed in adf query ?

    Hello,
    is it possible to change the number of rows that are displayed in an adf query similar to an adf form ?
    I need to display approx 5 rows per column instead of displaying all the fields in a single column ? Thanks.

    Thanks , how do you add in the code ,is it something like follows :
    <af:query id="qryId1" headerText="Search" disclosed="true"
                                value="#{bindings.ImplicitViewCriteriaQuery.queryDescriptor}"
                                model="#{bindings.ImplicitViewCriteriaQuery.queryModel}"
                                queryListener="#{bindings.ImplicitViewCriteriaQuery.processQuery}"
                                queryOperationListener="#{bindings.ImplicitViewCriteriaQuery.processQueryOperation}">
                        <af:inputText value="#{bindings.PrtDesc.inputValue}" label="Desc"
                                      required="#{bindings.PrtDesc.hints.mandatory}"
                                      columns="#{bindings.PrtDesc.hints.displayWidth}"
                                      maximumLength="#{bindings.PrtDesc.hints.precision}"
                                      shortDesc="#{bindings.PrtDesc.hints.tooltip}" id="it3">
                          <f:validator binding="#{bindings.PrtDesc.validator}"/>
                        </af:inputText>
                      <af:column>
                       <af:outputtext/>
                        <af:outputtext/>
                     </af:column>
                      </af:query>

  • Is it possible to limit the number of attachments

    Is is possible to limit the number of attachments that the mail server will receive in a message. For example if the email has 5 or more attachments reject it or through it in the bitbucket.
    The reason I ask is I have a remote site that is sending me 500+ email messages with 40 attachments in each. Well with virus scanning in the conversion channel it really backs things up.
    I have looked in the manual but have not been able to find anything.
    I am running ims5.2 patch 1.15 on HP-UX. Soon it will be patch 1.25 when school is out.
    Thanks,
    Gary

    Since each message is usually in a separate MIMEpart, you could use the conversion channel to do what you're asking, but . . .
    Routing every message through conversion will be a pretty big performance hit.
    How about simply blocking that particular site with an
    ORIG_SEND_ACCESS
    mapping entry in your mappings file?

Maybe you are looking for

  • Is there a way to programati​cally call the LabVIEW "find" function?

    Hi, My situation is this. I've inherited a LabVIEW program with about 375 vi's. Now when I build this into an executable, for memory reasons, I only want the "remove panel" feature set to no for vi's that are dynamically loaded. But I don't know exac

  • Custom fields are not appearing in BP

    Hi Friends, My requirement is to add a new fields in Business partner(TCode:BP). For this I have created a new tab using Business data tool set by following every step. I have regenerated the screens also(using Tcode:BUSP). But after executing the tr

  • HTTP Adapter Issue - ATTRIBUTE_CLIENT_DEST

    Hello Everyone, Just curiou to know if anyone has seen this type of issue before from SXMB_MONI:   <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> - <!--  Call Adapter   --> - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP

  • Weblogic 7 SP5 SQL Exceptions follow a JTA transaction timeout

    I have a problem in Weblogic 7 SP5 that was not happening in SP2. I'm using the Weblogic jDriver (weblogic.jdbc.mssqlserver4.Driver) I have a transaction that times out due to JTA transaction timeout, and then gets marked for rollback. For several mi

  • Import data in BPC depending on sign

    Hello everybody, I would like to import data using an external file in SAP BPC depending on the sign of the value and the account. If the value of the account (X, for example) if positive, the value must be entered in the same account X. But if the v