FAQs -
ApexSQL Clean
General
|
What SQL Server versions are supported by ApexSQL Clean?
|
ApexSQL Clean supports: SQL Server 2005 32-bit, SQL Server 2000 32-bit, and SQL Server 7.0.
|
Can I save my projects for future reference?
|
Yes, you can easily save projects and open them later. All information about a specific project in one single *.axcl file.
|
Will my Options settings be saved?
|
Options and settings are specific to just one single project, so each project has its own set of options and settings. When you create a new project, the default settings for a project will be used.
|
I'm having display problems because of amount of columns. Can I group and sort them?
|
ApexSQL Clean is very flexible in displaying your objects. You can expand / collapse your object tree with a single click, group columns in particular order by dragging and dropping column headers, sort and group by columns (drill down to 4 levels of hierarchy for sorting and any number of levels for grouping) via simple filtering dialog.
|
Can I somehow filter grid data? I often need to find objects with a specific owner and my project has lots of them.
|
It is easy to filter data in ApexSQL Clean. Check if you have Show Filter Row option turned on in the Main Toolbar and then just click on an empty field below the column name, type in the desired value or select one from the drop-down list. The data is now filtered and displays only matching entries.
|
Does ApexSQL Clean support wildcard filtering for names?
|
Yes. You can use wildcards such as the asterisk "*" or question mark "?" as parts of the object name. The asterisk will replace any number of characters and the question mark will replace a single one.
|
Can I see a visual representation of the dependency analysis?
|
Yes. ApexSQL Clean offers a powerful visual dependency viewer that you can use for such purposes. You can display the dependencies using different model types, such as Hierarchical or Orthogonal. For more information refer to the Dependency Viewer section.
|
ApexSQL Clean identified un-referenced objects in my database. How can I safely remove these objects?
|
ApexSQL Clean contains a quick and powerful Drop Script Generation wizard that will help you clean your database fast, efficient and completely free of error while doing that.
|
Is ApexSQL Clean dependency view more detailed than one I have in MS SQL Studio?
|
Yes, ApexSQL Clean has faster and more detailed dependency viewer than one offered by MS SQL Server Management Studio. We implement a proprietary dependency algorithm that in many cases is more accurate than SQL Servers own client utilities which rely on sysdepends table (see next FAQ).
|
Does ApexSQL Clean use SQL Server's sysdepends table to track references? I understand sysdepends is inaccurate and often reports false negatives (indicates there is no dependency when there is one).
|
No. ApexSQL Clean relies on its own proprietary algorithm for tracking dependencies that doesn't rely solely on any Microsoft algorithms or system tables. This way, ApexSQL Clean generally reports much more accurate results.
|
Can ApexSQL Clean tell me the columns that participate in the Dependency Relationship?
|
Yes. ApexSQL Clean processes the columns that participate in dependencies. For more information on this functionality see Column Level Dependencies of the online help file.
|
Does ApexSQL Clean identify dependencies in Dynamic SQL in stored procedures, functions etc?
|
No. Currently ApexSQL Clean does not support this feature.
External References
|
Can ApexSQL find external references to objects in different databases and even servers?
|
By default ApexSQL Clean will show any references to parent objects in external databases and servers and display them in the grid and Dependency Diagram. To find Child references in external databases you must select that database in the External Database step in Project Wizard. For more information on External References check the help file. ApexSQL Clean shows references on linked servers’ objects, but it cannot determine an object type. It will always be shown as "Unknown" in the dependency viewer and parent grid.
|
Why is ApexSQL Clean asking me to select from a list of "External Databases"?
|
If you opt to analyze additional databases other than the central database you are processing you can find Child objects that may exist in other databases, that would otherwise not be found, and get more detailed information on Parent references that are found by default. The additional info on parent objects includes the Object Type and the DDL script of Parent references.
|
ApexSQL Clean found an external Parent reference - but why is its object type "Unknown"?
|
ApexSQL Clean is unable to reconcile the object type of the referenced object unless the database that contains it is selected in the External Databases step of the Project Wizard.
Dependency Analysis Wizard
|
I have a very large database. Can I filter objects by their type (for example Procedure)?
|
ApexSQL Clean supports object type filtering. In the Object Filter step of the Dependency Analysis Wizard just check the Object types you would like to be analyzed (uncheck those you don't). For your convenience you can export the settings made here to an XML file and import them at a later time into future projects or use the file in Command Line Mode. This will increase the overall database analysis speed but then you will not be 100% sure if analyzed objects are really unreferenced - since you filtered out parts of the database.
|
Object type filtering is great but I need to analyze only specific object and not all objects of that type. Can I do that?
|
Yes, you can. In the Dependency Analysis Wizard, go to the Object Filter page. For each object type listed there you can apply a custom filter. You enable this filtering by checking – Use Filter Checkbox next to object types you wish to analyze. This filter supports wildcard searches on object names, and you can limit the scope of your object selection for analysis to any degree of granularity you need.
|
I need to analyze specific objects that match certain pattern. Is that possible?
|
Yes, see Filter By Individual Object section of online help, for more information.
File Analysis
|
Can I analyze my .NET projects or other client code (Delphi, C++, ASP, etc) for database references, or does ApexSQL work on SQL Server databases only?
|
ApexSQL Clean features the ability to check the content of files, commonly source code files of custom client applications and even Visual Studio solutions for database object references. ApexSQL Clean can analyze any type of file, it will search file for name of objects.
In case of .NET solution/project analyzing ApexSQL Clean will search for the references within all files included into that solution. See Analyze Application section of online help for more information on settings.
|
I would like my searches for objects in source code files to be case sensitive. How can I do that?
|
ApexSQL Clean features several options that affect the way searches can be performed. In the project wizard dialog go to search options page and check/un-check the appropriate search settings you would like to be performed.
Tech Tip: This only affects search within client application source code files, searches within SQL Server are NOT affected by these settings.
|
What would I use the name patterns and the Recursive option in the File selection wizard step for?
|
The File Name Pattern allows the user to customize and maintain the list of file extension types to be searched during the analysis process. The Recursive option allows the user to recursively check any selected directory for the specified patterns, including sub-directories.
Import/Export
|
I have object selections already set in a project file that I wish to import into a new project file. How do I do this?
|
If you have finished an object selection (probably even with some filters applied) that you wish to use for other project, you can easily export these settings to an XML file on your file system. Just click on the Object Filter page on the Export button to save the setting to a file.
Then open the new project and import the saved *.xml file clicking the Import button on the very same Object Filter page – it will overwrite any existing object selections with objects from the imported profile.
|
How can I display or export results I get from the dependency analysis?
|
You can see the Parent & Child dependencies in the main application window of ApexSQL Clean. You can also display the results as a reference graph or HTML report. ApexSQL Clean allows you to export its analysis to XML files for further analysis in other applications such as Microsoft Excel.
Drops Generation Wizard
|
Why would I use the Drop Generation Wizard?
|
It will generate a drop <object> script for un-referenced objects that are not being used by other objects anymore and therefore can safely be removed from the database. You don't need to create such a script yourself and in this respect the drop generation wizard adds greatly to your safety. For more information about usage refer to Drops Generation Wizard section of online help file.
|
Is there a backup if something goes wrong?
|
ApexSQL Clean is designed with the safety of your databases in mind. As such, it includes the option in the drop generation wizard script to add a backup command which will backup the database immediately before the drop statements are executed. This ensures, that in any case of disaster you are able to restore to the databases' most recent state. We strongly recommend that you have such a most recent backup of a database before changing anything in a production database. No matter if these changes are suggested by ApexSQL Clean or not.
|
What options do I have to see and edit a script generated by ApexSQL Clean?
|
You can virtually choose any editor you prefer. For our own ApexSQL Editor, SQL Servers’ Query Analyzer or Management Studio, you just have to select the appropriate option on the Tools -> Options -> Output tab. If you want some other editor to be launched, you need to specify the path to its executable file. Optionally you can add an argument list for that executable.
|
What output option does the Drop Script Wizard offer?
|
You can either choose to launch the generated script in your preferred editor, write it to a file on your file system or execute it directly against the database. If you are executing it directly, don't forget to check if the database backup is setup properly under the General step of the Drop Script Wizard.
|
It seems that I can't select some objects? Why is this?
|
For your own safety ApexSQL Clean allows only un-referenced objects to be selected, preventing you from dropping objects that are referenced by any other object.
Dependency Viewer
|
I want to see just some of my database objects in the Dependency Viewer. Is this possible or do I always have to load all my objects in the Dependency Viewer?
|
Sure, you can select which database objects will be opened in the Dependency Viewer. Just check those objects you wish in the Main Grid and choose Dependecy Viewer from the Outlook Bar or Visual Dependencies for Checked Objects from the Main Grid's context menu. You can also open the dependencies for a single object by right-clicking an object in the Main Grid and selecting the Visual Dependencies for <objectname>.
|
Are there any limitations to the Dependency Viewer?
|
The Dependency Viewer is very flexible and fully customizable. You can easily hide / show objects, change any objects’ type shape and color, move objects on the screen, quickly switch between 4 different model representations and a whole lot more. To see all available options and features of the Dependency Viewer see the respective sections.
|
What export/save options do I have in the Dependency Viewer?
|
The Dependency Viewer image can be saved to a variety of widely supported formats such as .jpg, .bmp, .gif, or .png. It can also be printed directly.
|
Can I change the look and appearance of objects in the Dependency Viewer?
|
Yes. You can assign a shape, background color and foreground color for each object. There are currently 10 unique shapes to choose from. Profiles that include different combinations of shapes and colors can be exported and imported.
Command Line Interface
|
I have a large and busy database I want to check for references. But I don’t want any unnecessary workload on that database during peak usage hours. Can I schedule a job to start the dependency analysis in off-peak hours?
|
ApexSQL Clean features a powerful command line interface. Just create and save a *.bat file and schedule it at the operation system level!
|
How do I run ApexSQL Clean from the command line?
|
The command line component is distributed with the main application normally, and is found in the main application folder that was requested by the user when installing the application. It is called 'apexsqlclean.com' or 'Apexsqlclean' and should be called that way – calling 'ApexSQLClean.exe' will simply open the GUI app, and should not be used for command-line operation.
|
The command line operation of ApexSQL Clean requires that I provide a bit-wise value for determining which object types are to be documented. How can I calculate that value?
|
On the Object Filter selection page of the wizard, the calculated bit-wise value for any selection of object types is displayed on the right side of the page.