Report Performance Issue and Strange Execution Log Data

Today we have had a report suddenly start taking a long time to execute.
Looking at the Report Server executionLog3 table/view we have the following information for the query in question. 
 <Connection>
      <ConnectionOpenTime>1</ConnectionOpenTime>
      <DataSets>
        <DataSet>
          <Name>ReportDataset</Name>
          <RowsRead>7</RowsRead>
          <TotalTimeDataRetrieval>150013</TotalTimeDataRetrieval>
          <ExecuteReaderTime>3</ExecuteReaderTime>
        </DataSet>
      </DataSets>
    </Connection>
Supposedly the time taken to retrieve the data is around 150 seconds.  However, running a profiler trace while running the report in SSRS shows the query executing in under 1 second.  
Indeed running a profiler trace for anything on the server with a duration greater than 60 seconds isn't returning anything.  I can only assume the above data is wrong when it says 150 seconds to retrieve the data.  IT IS taking that long to run
the report though - so the question is - where is the time going? 
Why can't I find a slow query on the server but SSRS thinks there is? 
LucasF
EDIT: This was fixed by restarting the report server.  Any ideas on why this might occur? 

Hi Lucas,
According to your description, you find the <TotalTimeDataRetrieval> in ExecutionLog3 is larger than the profiler trace time.
In Reporting Services, to analyze the performance of the report, we usually check the TimeDataRetrieval to find the time we spend on retrieving the data. It’s the time needed for SQL Server to retrieve the data of all datasets in your report. So in your
scenario, please check if the TimeDataRetrieval is equal to the time in profiler trace.
Reference:
More tips to improve performance of SSRS reports
If you have any question, please feel free to ask.
Best regards,
Qiuyun Yu
Qiuyun Yu
TechNet Community Support

Similar Messages

  • ABAP performance issues and improvements

    Hi All,
    Pl. give me the ABAP performance issue and improvement points.
    Regards,
    Hema

    Performance tuning for Data Selection Statement
    For all entries
    The for all entries creates a where clause, where all the entries in the driver table are combined with OR. If the number of
    entries in the driver table is larger than rsdb/max_blocking_factor, several similar SQL statements are executed to limit the
    length of the WHERE clause.
    The plus
    Large amount of data
    Mixing processing and reading of data
    Fast internal reprocessing of data
    Fast
    The Minus
    Difficult to program/understand
    Memory could be critical (use FREE or PACKAGE size)
    Some steps that might make FOR ALL ENTRIES more efficient:
    Removing duplicates from the the driver table
    Sorting the driver table
          If possible, convert the data in the driver table to ranges so a BETWEEN statement is used instead of and OR statement:
          FOR ALL ENTRIES IN i_tab
            WHERE mykey >= i_tab-low and
                  mykey <= i_tab-high.
    Nested selects
    The plus:
    Small amount of data
    Mixing processing and reading of data
    Easy to code - and understand
    The minus:
    Large amount of data
    when mixed processing isn’t needed
    Performance killer no. 1
    Select using JOINS
    The plus
    Very large amount of data
    Similar to Nested selects - when the accesses are planned by the programmer
    In some cases the fastest
    Not so memory critical
    The minus
    Very difficult to program/understand
    Mixing processing and reading of data not possible
    Use the selection criteria
    SELECT * FROM SBOOK.                   
      CHECK: SBOOK-CARRID = 'LH' AND       
                      SBOOK-CONNID = '0400'.        
    ENDSELECT.                             
    SELECT * FROM SBOOK                     
      WHERE CARRID = 'LH' AND               
            CONNID = '0400'.                
    ENDSELECT.                              
    Use the aggregated functions
    C4A = '000'.              
    SELECT * FROM T100        
      WHERE SPRSL = 'D' AND   
            ARBGB = '00'.     
      CHECK: T100-MSGNR > C4A.
      C4A = T100-MSGNR.       
    ENDSELECT.                
    SELECT MAX( MSGNR ) FROM T100 INTO C4A 
    WHERE SPRSL = 'D' AND                
           ARBGB = '00'.                  
    Select with view
    SELECT * FROM DD01L                    
      WHERE DOMNAME LIKE 'CHAR%'           
            AND AS4LOCAL = 'A'.            
      SELECT SINGLE * FROM DD01T           
        WHERE   DOMNAME    = DD01L-DOMNAME 
            AND AS4LOCAL   = 'A'           
            AND AS4VERS    = DD01L-AS4VERS 
            AND DDLANGUAGE = SY-LANGU.     
    ENDSELECT.                             
    SELECT * FROM DD01V                    
    WHERE DOMNAME LIKE 'CHAR%'           
           AND DDLANGUAGE = SY-LANGU.     
    ENDSELECT.                             
    Select with index support
    SELECT * FROM T100            
    WHERE     ARBGB = '00'      
           AND MSGNR = '999'.    
    ENDSELECT.                    
    SELECT * FROM T002.             
      SELECT * FROM T100            
        WHERE     SPRSL = T002-SPRAS
              AND ARBGB = '00'      
              AND MSGNR = '999'.    
      ENDSELECT.                    
    ENDSELECT.                      
    Select … Into table
    REFRESH X006.                 
    SELECT * FROM T006 INTO X006. 
      APPEND X006.                
    ENDSELECT
    SELECT * FROM T006 INTO TABLE X006.
    Select with selection list
    SELECT * FROM DD01L              
      WHERE DOMNAME LIKE 'CHAR%'     
            AND AS4LOCAL = 'A'.      
    ENDSELECT
    SELECT DOMNAME FROM DD01L    
    INTO DD01L-DOMNAME         
    WHERE DOMNAME LIKE 'CHAR%' 
           AND AS4LOCAL = 'A'.  
    ENDSELECT
    Key access to multiple lines
    LOOP AT TAB.          
    CHECK TAB-K = KVAL. 
    ENDLOOP.              
    LOOP AT TAB WHERE K = KVAL.     
    ENDLOOP.                        
    Copying internal tables
    REFRESH TAB_DEST.              
    LOOP AT TAB_SRC INTO TAB_DEST. 
      APPEND TAB_DEST.             
    ENDLOOP.                       
    TAB_DEST[] = TAB_SRC[].
    Modifying a set of lines
    LOOP AT TAB.             
      IF TAB-FLAG IS INITIAL.
        TAB-FLAG = 'X'.      
      ENDIF.                 
      MODIFY TAB.            
    ENDLOOP.                 
    TAB-FLAG = 'X'.                  
    MODIFY TAB TRANSPORTING FLAG     
               WHERE FLAG IS INITIAL.
    Deleting a sequence of lines
    DO 101 TIMES.               
      DELETE TAB_DEST INDEX 450.
    ENDDO.                      
    DELETE TAB_DEST FROM 450 TO 550.
    Linear search vs. binary
    READ TABLE TAB WITH KEY K = 'X'.
    READ TABLE TAB WITH KEY K = 'X' BINARY SEARCH.
    Comparison of internal tables
    DESCRIBE TABLE: TAB1 LINES L1,      
                    TAB2 LINES L2.      
    IF L1 <> L2.                        
      TAB_DIFFERENT = 'X'.              
    ELSE.                               
      TAB_DIFFERENT = SPACE.            
      LOOP AT TAB1.                     
        READ TABLE TAB2 INDEX SY-TABIX. 
        IF TAB1 <> TAB2.                
          TAB_DIFFERENT = 'X'. EXIT.    
        ENDIF.                          
      ENDLOOP.                          
    ENDIF.                              
    IF TAB_DIFFERENT = SPACE.           
    ENDIF.                              
    IF TAB1[] = TAB2[].  
    ENDIF.               
    Modify selected components
    LOOP AT TAB.           
    TAB-DATE = SY-DATUM. 
    MODIFY TAB.          
    ENDLOOP.               
    WA-DATE = SY-DATUM.                    
    LOOP AT TAB.                           
    MODIFY TAB FROM WA TRANSPORTING DATE.
    ENDLOOP.                               
    Appending two internal tables
    LOOP AT TAB_SRC.              
      APPEND TAB_SRC TO TAB_DEST. 
    ENDLOOP
    APPEND LINES OF TAB_SRC TO TAB_DEST.
    Deleting a set of lines
    LOOP AT TAB_DEST WHERE K = KVAL. 
      DELETE TAB_DEST.               
    ENDLOOP
    DELETE TAB_DEST WHERE K = KVAL.
    Tools available in SAP to pin-point a performance problem
          The runtime analysis (SE30)
          SQL Trace (ST05)
          Tips and Tricks tool
          The performance database
    Optimizing the load of the database
    Using table buffering
    Using buffered tables improves the performance considerably. Note that in some cases a stament can not be used with a buffered table, so when using these staments the buffer will be bypassed. These staments are:
    Select DISTINCT
    ORDER BY / GROUP BY / HAVING clause
    Any WHERE clasuse that contains a subquery or IS NULL expression
    JOIN s
    A SELECT... FOR UPDATE
    If you wnat to explicitly bypass the bufer, use the BYPASS BUFFER addition to the SELECT clause.
    Use the ABAP SORT Clause Instead of ORDER BY
    The ORDER BY clause is executed on the database server while the ABAP SORT statement is executed on the application server. The datbase server will usually be the bottleneck, so sometimes it is better to move thje sort from the datsbase server to the application server.
    If you are not sorting by the primary key ( E.g. using the ORDER BY PRIMARY key statement) but are sorting by another key, it could be better to use the ABAP SORT stament to sort the data in an internal table. Note however that for very large result sets it might not be a feasible solution and you would want to let the datbase server sort it.
    Avoid ther SELECT DISTINCT Statement
    As with the ORDER BY clause it could be better to avoid using SELECT DISTINCT, if some of the fields are not part of an index. Instead use ABAP SORT + DELETE ADJACENT DUPLICATES on an internal table, to delete duplciate rows.

  • Performance issue and data getting interchanged in BO Webi report + SAP BW

    Hi,
    We are using SAP BW queries as the source for creating some BO reports.
    Environments :
    SAP - SAP BI 7.1
    BO - BO XI 3.1
    Issues :
    The reports were working fine in Dev and Q with less data. But when we point the universes to BW prod ( where we have much data), the reports are taking quite a long time to refresh and getting timed out. This query has some key figures which are having customer exits defined to show only one month data. And also BW accelerators are updated for the infocubes pertaining to this query. The BO report is giving data if we apply a filter in 'Query Panel' of Webi to show only current month dates. But then the issue is the values are getting interchanged for many objects. For ex: there are 2 objects- ABS version and Market region. The values are getting interchanged in the BO level.
    Please let us know if anything needs to be done in BO or BW to fix this issue if anyone has faced the same
    Also Please let us know if customer exits and accelerators works fine with BO
    Thanks
    Sivakami

    Hi,
    Thanks Roberto. We'll check the notes
    @Ingo,
    We are able to solve the performance issue by removing unused Key figures and dimensions from the query, but the column value interchange issue still persisits
    The build version is  - 12.3.0
    Query Stripping
    Where should we enable query stripping? When i went through some documentation it was written that it'll be enabled automatically from XI 3.1 Sp3. Can you please let us know if its so and what we need to do to enable it.
    The coulmn interchange is happening when we use dimensions in a certain order. When product type is used along with Market region. Market region shows values of Product type also in Webi report.
    Thanks & Regards,
    Sivakami

  • Performance Issue in Large volume of data in report

    Hi,
    I have a report that will process large amount of data, but it takes too long to process the data into final ALV table, currently im using this logic.
    Select ....
    Select for all entries...
    Loop at table into workarea...
    read table2 where key = workarea-key binary search.
    modify table.
    read table2 where key = workarea-key binary search.
    modify table.
    endloop.
    Currently i select all data that i need (only fields necessary) create a big loop and read other table to insert it to the fields in the final table
    Edited by: Alvin Rosales on Apr 8, 2009 9:49 AM

    Hi ,
    You can use field symbols instead of work area.
    If you use field symbols there is no need of modify statement.
    Here are two equivalent code:
    1) using work areas :
    types: begin of  lty_example,
    col1 type char1,
    col2 type char1,
    col3 type char1,
    end of lty-example.
    data:lt_example type standard table of lty_example,
           lwa_example type lty_example.
    field-symbols : <lfs_example> type lty_example.
    suppose if you have the following information in your internal table
    col1 col2 col3
    1      1    1
    1      2    2
    2      3    4
    Now you may use the modify statement using work areas
    loop at lt_example into lwa_example.
    lwa_example-col2 = '9'.
    modify lt_example index sy-tabix from lwa_example transporting col2.
    endloop.
    or better using field-symbols:
    loop at lt_example assigning <lfs_example>
    <lfs_example>-col2 = '9'.
    *here there is no need of modify statement.
    endloop.
    The code using field-symbols is about 10 times faster tahn using work areas and modify statement.

  • Report performance Issue in BI Answers

    Hi All,
    We have a performance issues with reports. Report is running more than 10 mins. we took query from the session log and ran it in database, at that time it took not more than 2 mins. We have verified proper indexes on the where clause columns.
    Could any once suggest to improve the performance in BI answers?
    Thanks in advance,

    I hope you dont have many case statements and complex calculations that you do in the Answers.
    Next thing you need to monitor is how many rows of data that you are trying to retrieve from the query. If the volume is huge then it takes time to do the formatting on the Answers as you are going to dump huge volumes of data. Database(like teradata) returns initially like 1-2000 records if you hit show all records then even db is gonna fair amount of time if you are dumping many records
    hope it helps
    thanks
    Prash

  • Performance issue with FDM when importing data

    In the FDM Web console, a performance issue has been detected when importing data (.txt)
    In less than 10 seconds the ".txt" and the ".log" files are created the INBOX folder (the ".txt" file) and in the OUTBOX\Logs (the ".log" file).
    At that moment, system shows the message "Processing, please wait” during 10 minutes. Eventually the information is displayed, however if we want to see the second page, we have to wait more than 20 seconds.
    It seems a performance issue when system tries to show the imported data in the web page.
    It has been also noted that when a user tries to import a txt file directly clicking on the tab "Select File From Inbox", the user has to also wait other 10 minutes before the information is displayed on the web page.
    Thx in advance!
    Cheers
    Matteo

    Hi Matteo
    How much data is being imported / displayed when users are interacting with the system.
    There is a report that may help you to analyse this but unfortunately I cannot remember what it is called and don't have access to a system to check. I do remember that it breaks down the import process into stages showing how long it takes to process each mapping step and the overall time.
    I suspect that what you are seeing is normal behaviour but that isn't to say that performance improvements are not possible.
    The copying of files is the first part of the import process before FDM then starts the import so that will be quick. The processing is then the time taken to import the records, process the mapping and write to the tables. If users are clicking 'Select file from Inbox' then they are re-importing so it will take just as long as it would for you to import it, they are not just asking to retrieve previously imported data.
    Hope this helps
    Stuart

  • Deductions Report performance issue

    Has anyone encountered performance problems lately with the Deductions Report?
    We have a custom report that is a modified version of the seeded report, and we cannot run the report to completion since our last round of patching. Patches applied are listed below, and include YE Phase 2.
    We have not yet opened a TAR on this, because we'll need to gather some information internally first.
    Thanks,
    Carrie
    Year-end and year-start updates, as follows:
    Patches 5555555, 5555550, 5650846, and HR Global – 2006 Oracle Year-End Phase 2
    Patch 5573903 – Quantum 2.8.2, Quantum 2006 Upgrade
    Patches 5589335 (prerequisite) and 5511810 – EEO Patch
    Patch 5416623 – Unable to process Admin Life Events (Benefits)
    Carrie Hollack
    [email protected]

    We've hit the performance bug and logged an SR. We ran the shipped report and it chugged for 2 1/2 days then blew up on snapshot too old. If you can avoid that error then it fails with ORA-01722: invalid number. I defragged and analyzed the Payroll tables and indexes but it's not enough to help the bad code. I think part of the issue is that the report code just uses a generic /*+ RULE */ hint. Another part of the issue may be that NULLs in the payroll tables aren't properly accounted for in the code.
    The behavior of the 'RULE' hint seems to be dependent on what the Paryoll LOW_VOLUME parameter is set to. That is, with LOW_VOLUME=Y and small tables the 'RULE' hint might be fine, but in the real World with with LOW_VOLUME=YouGottaBeKidding it doesn't.
    The new Payroll Activity Report for the whole year has very good performance--it only took 4 hours in our environment--and it used to take days.
    Open an SR and ask to be attached to Bug 5742521.

  • Database migrated from Oracle 10g to 11g Discoverer report performance issu

    Hi All,
    We are now getting issue in Discoverer Report performance as the report is keep on running when database got upgrade from 10g to 11g.
    In database 10g the report is working fine but the same report is not working fine in 11g.
    The query i have changed as I have passed the date format TO_CHAR("DD-MON-YYYY" and removed the NVL & TRUNC function from the existing query.
    The report is now working fine in Database 11g backhand but when I am using the same query in Discoverer it is not working and report is keep on running.
    Please advise.
    Regards,

    Pl post exact OS, database and Discoverer versions. After the upgrade, have statistics been updated ? Have you traced the Discoverer query to determine where the performance issue is ?
    How To Find Oracle Discoverer Diagnostic and Tracing Guides [ID 290658.1]
    How To Enable SQL Tracing For Discoverer Sessions [ID 133055.1]
    Discoverer 11g: Performance degradation after Upgrade to Database 11g [ID 1514929.1]
    HTH
    Srini

  • Hyperion Interactive reporting performance issue.

    Hi,
    We created a report in Hyperion Interactive reporting using Hyperion Essbase as database connection file .
    Report performance was good in Interactive reporting Studio we don't have any problem in studio.
    when we open the the report in Hyperion Workspace We are facing performance issue of the report and also when i hit refresh button to refresh data in the Workspace,i am getting the following error message
    *"An Interactive Reporting Service error has occurred - Failed to acquire requested service. Error Code : 2001"*
    Any suggestions to resolve this will be really helpful.
    Thanks in advance
    Thanks
    Vamsi
    Edited by: user9363364 on Aug 24, 2010 7:49 AM
    Edited by: user9363364 on Sep 1, 2010 7:59 AM

    Hi
    i also faced such an issue and then i found the answer on metalink
    Error: "An Interactive Reporting Service Error has Occurred. Failed to Acquire Requested Service. Error Code: 2001" when Processing a bqy Report in Workspace. [ID 1117395.1]     
    Applies to:
    Hyperion BI+ - Version: 11.1.1.2.00 and later [Release: 11.1 and later ]
    Information in this document applies to any platform.
    Symptoms
    Obtaining the following error when trying to process a BQY that uses an Essbase data source in Workspace:
    "An Interactive Reporting Service error has occurred. Failed to acquire requested service. Error Code: 2001".
    Cause
    The name of the data source in the CMC contained the machine name in fully qualified name format whereas the OCE contained the machine name only. This mismatch in machine names caused the problem. Making the machine name identical in both cases resolved the problem.
    Solution
    Ensure that the name of the data source as specified in the OCE in Interactive Reporting Studio matches the name specified in the CMC tool in the field "Enter the name of the data source".
    In fact, all fields need to match between the OCE and the CMC Data Source.
    regards
    alex

  • Performance issue of Security Audit log

    Hello,
              My client would like to activate the Security Audit log on his system. However he will like to know whether there could be any performance issue when activating it. Since I do not have any prior experience, can you please give me your general feedback on this subject. Have any of you experience performance issue when implementing security audit log and what can be done to minimize its effect?

    Hai,
    Activating Security Audit logs will not affect the performance of your SAP system. Since SAP Systems maintain their audit logs on a daily basis. The system does not delete or overwrite audit files from previous days; it keeps them until you manually delete them. Due to the amount of information that may accumulate, you should archive these files on a regular basis and delete the originals from the application server. This is the only thing you really need to take care since they might fill up the disk space if you dont archive or delete them on regular basis. Also since the data is very sensitive you should take extra care to protect the data.
    Please follow the below links for more details.....
    http://help.sap.com/saphelp_nw04/helpdata/EN/95/d2a8e36d6611d1a5700000e835363f/frameset.htm
    http://www.saptechies.com/faq-answers-to-questions-about-the-security-audit-log/
    Regards,
    Yoganand.V

  • Report Performance Issue - Activity

    Hi gurus,
    I'm developing an Activity report using Transactional database (Online real time object).
    the purpose of the report is to list down all contacts related activities and activities NOT related to Contact by activity owner (user id).
    In order to fullfill that requirment I've created 2 report
    1) All Activities related to Contact -- Report A
    pull in Acitivity ID , Activity Type, Status, Contact ID
    2) All Activities not related to Contact UNION All Activities related to Contact (Base report) -- Report B
    to get the list of activities not related to contact i'm using Advanced filter based on result of another request which is I think is the part that slow down the query.
    <Activity ID not equal to any Activity ID in Report B>
    Anyone encountered performance issue due to the advanced filter in analytic before?
    any input is really appriciated
    Thanks in advanced,
    Fina

    Fina,
    Union is always the last option. If you can get all record in one report, do not use union.
    since all records, which you are targeting, are in the activity subject area, it is not nessecery to combine reports. add a column with the following logic
    if contact id is null (or = 'Unspecified') then owner name else contact name
    Hopefully, this is helping.

  • Accrual Reconciliation Load Run  report performance issue.

    we have significant performance issues when running accrual reconciliation load run report. we had to cancel after have it run for a day. any idea on how to resolve it?

    We experienced similar issue. As the runtime of this report depends on the input parameters. Remember, your first run of this report going to take significant amount of time and the subsequent runs will be much shorter.
    But w had to apply the patches referred in the MOS article to resolve the performance issue.
    Accrual Reconciliation Load Run Has Slow Performance [ID 1490578.1]
    Thanks,
    Sunthar....

  • HR ABAP- Report Performance Issue

    Can you please any body tell me how to debug a report program by putting watch points and break points.
    Waiting for your Reply.
    Anu
    Bangalore

    Hi,
               If you have programm name then proceed with SE38 or take the programm name from Trasaction code which  you are using.
    Break Points:   If it is performance issue , put external break points around select querie and loop ---end loop.
    Watch Points :  in the debug screen choose the watch  point option and  give the field name from  your internal table for which you want to put watch point.
    After that give the range which you record you want to see in the range options.
    for these steps:  1. Execute your programm.
           2. In the selection screen enter /h in the command window to start debugging screen or put break points before excuting.
         3. Once you are in debug screen then start woring with F5 or F6 or F7 and create watch points where ever you like.

  • Deski reports performance issue

    After an upgrade from BOXI Release2-SP3 to BOXI Release3.1-SP3 all the deski reports are very slow when we try to refresh them using Infoview.
    For example, a specific deski report needs two minutes from Desktop Intelligence and twenty!!! minutes from Infoview. The same behavior have all the migrated deski reports. Do you have any idea/workaround??

    hi,
    - Set the array fetch size as 500 and array bind size as 32767 in Universe Parameters
    Following links will be helpful.
    http://www.forumtopics.com/busobj/viewtopic.php?t=142973&sid=0a48878553739783e77ca43ae06c5cdb
    Performance issue with Deski in three tier mode
    Regards,
    Vamsee

  • XL Report performance issues

    Hello All,
    We are running some XL reports and facing some performance issues: 10 mins for a report to run.
    We don´t plan to split this report in many other ones, and I have already run the SQL tools for reorganizing and reindexing the tables (I believe this is nothing to do with performance but ran it anyway...) without any improvements.
    Can anybody be a help on this?
    Thanks!

    Hi Siavauch Saleki 
    Name the report which take too long to run, i have worked on XL report, when i run report from client system it takes some long time,
    try running to run from server
    another way of making it faster is go to Task manager in the process tab
    Change the priority of XL Reporter , excel to HIGH
    THIS WILL MAKE IT FASTER BY ALLOCATING MORE PROCESSOR TIME FROM OS TO IT
    This should improve the reporting speed
    Let me know how it works
    Regards
    Krish

Maybe you are looking for

  • ORDERS idoc processing in workflow

    I have a situation when processing ORDERS idocs thru workflow. The unit of measure is inadvertently switching from what is on the idoc (EA) to the base (CA) after correcting the "qty not in valid multiples" error and saving the order.  the standard V

  • Sorting by Stars in Bridge CS6

    At some point, my previous version, CS4, stopped sorting based on stars or labels. While I could star or label, clicking on Sort didn't do anything -- it remained in the view where everything was shown. Unfortunately, this has continued over into CS6

  • Upgrade from photoshop cs3 extended to photoshop cs5 photoshop

    I am trying to upgrade from Adobe photoshop cs3 extended to Adobe photoshop cs5 extended and when I tried to put in serial number to install upgraded photoshop cs5 is did okay but it asked for the serial number from previous photosho p cs3 I get this

  • DAG File share witness & Quorum best practice

    I am building a new environment with 2 x cas & 2 x MBX in site A and 1 x cas and 1 x MBX in DR site B First of all what happens if I lose/turn off my FSW in a production environment in the middle of the day? Secondly I have 3 nodes so do I need a FSW

  • HELP! Photoshop CS3

    it keeps crashing when i try to make a gif!