Why am I getting "Invalid object name"
error for every query?
You are probably in the wrong Context, please select the
proper context for your query from the Context drop-down
menu on the top left of the Query page. You should read
the Help page section on 'Context and Queues' for further
information.
How can I estimate the size of the output from a query?
You can do this in two steps. First, get the total number of rows the query would return by reducing
the SELECT clause in your query to "SELECT COUNT(*)" (leaving everything else the same) and running
the query, e.g., if your original query is "SELECT objID, ra, dec FROM PhotoTag WHERE ra BETWEEN
180.0 and 180.1", then replace this with "SELECT COUNT(*) FROM PhotoTag WHERE ra BETWEEN 180.0 and
180.1" and run the query. You may need to run it in the long queue (using Submit button) because
even counting the rows can take more than a minute for certain intensive queries. The second step is
to estimate the size of a thousand rows from the same query. You can do this by tacking a "TOP 1000"
to the front of your SELECT clause and omitting the WHERE clause, e.g. in the above query, you would
modify it to just "SELECT TOP 1000 objID, ra, dec FROM PhotoTag". Now run this version of the query
using the Submit button, so the output will go to a MyDB table. Once the query is finished, check
size of the MyDB table on the MyDB page. The sizes are indicated in KB. Using the size for 1000 rows,
calculate the size of the full output using the appropriate multiplier, e.g., if the first query
returned 1851326 (i.e. 1,851,326 rows), and the size of the MyDB table from the second query was 48
KB, then the total output size would roughly be 1851 x 48 = 88848 KB, or 89 MB. If the estimated size
turns out to be larger than the space available in your MyDB, you can either delete some tables if
you don't need them, or ask for more space by contacting the help desk. If the estimated size is
much more than your MyDB space remaining, e.g., if it is more than a few GB, then the best option
probably will be to ask the help desk to run the query on your behalf and let you download the results
from an FTP site. There will also be a MyScratch scratch DB option available soon so you can run
such queries yourself and send the output to a temporary scratch space.
Why am I getting the error "Execution terminated by the provider
because a resource limit was reached." when I submit a query?
You are probably running your query in the MyDB context, which is only meant for running queries
that are relatively lightweight and are requesting data predominantly from your MyDB tables. If that
is not the case, you should always choose the context where most of your data is coming from and run
your query in that context. If you still get this error in a non-MyDB context, please contact the
help desk.
Any keyboard shortcuts?
Yup. The page for query submission has a few keyboard shortcuts for things like
submitting a query, checking syntax, showing results, etc. Shortcuts are described
in the tooltip for the button that performs the equivalent action.
Additionally, you can press the Tab key to automatically indent selected text.
How do I submit part of a query?
From the 'Query' page, select the part of your query that you want to execute, then click on the appropriate action, like 'Quick' or 'Syntax'.
Your selection will be treated as the entire query. This also works with keyboard shortcuts.
What does 'General Network Error' mean?
This error message is usually a result of particularly high server load. It is not
a direct result of your query. A resubmit will usually fix this.
What does 'Column names in each table must be unique.' mean?
SQL requires that all columns within a table contain a unique name. This error usually
occurs when a user inadvertantly tries to create a table with duplicate column names.
For example, views 'Photoobj' and 'Galaxy' both contain an 'objid' column, so if
one tried a select * from both of these into a single table this error would occur.
The fix is to explicity name the conflicting column as something else, so instead
of doing 'select ra from photoobj' you could do 'select ra as ra2 from photoobj'.
What does 'Query results exceed memory limitations' mean?
This means the result of the query which you've submitted is greater than the memory
buffer will allow. This message only applies to 'quick' queries; queries using 'submit'
do not have any memory restrictions. The easiest thing to do is just use submit
instead of quick.
How may I check how many jobs are waiting in a given queue?
Go to the Queues page by clicking on the link here or in
the menu-bar.
(How) can I bump up my MYDB size limit?
You may request additional space - you do not automatically get more space. Please
email the Help Desk (Contact link at the bottom of the page) after you log
in.
What happens if my query does not complete ?
We strictly limit the length of queries for up to eight hours. If your query fails
to complete in this amount of time you should ask for it to be analyzed and we will
attempt to make your query more efficient.
Who do I notify if my job doesn't run for a long time (the queue
appears to be stuck)?
Occasionally the service running the jobs hangs (although we hope to have fixed
it in this version). If you see many waiting jobs and none executing, please email
the SDSS Help Desk using the Contact link at the bottom of this page.
Why can't I drop or create tables outside the MyDB context?
This is due to CasJobs' distributed operation and because SQL Server does not allow
tables to be dropped or created remotely (from a different server via a linked server
connection). For more information, please see the CasJobs
Limitations due to Distributed Execution section in the Help page.
How can I add a count or enumerator column to my table?
If you need to add an enumerator (an int id) column to your table (e.g., for use
in the neighbors search type queries), you can do it as described in the
Enumerator Column example in the Advanced CasJobs Queries
page.
Why can't I run user-defined functions from outside the context of
the DB in which they are defined?
This is due to CasJobs' distributed operation and because SQL Server does not allow
user-defined functions to be executed remotely (from a different server via a linked
server connection). For more information, please see the
CasJobs Limitations due to Distributed Execution section in the Help page.
Why isn't my CasJobs Command-Line (CL) tool working?
Two common problems with the CL tool are the Java version compatibility and network
problems due to either an incorrect config.casjobs
file or your local proxy or firewall setting. The CL tool is currently only compatible
with Java SDK v1.5 or higher (v1.6 recommended). If you are using a compatible
version of Java, and it is still not working (e.g. giving you the error "Error retrieving
host info."), then you need to contact the Help Desk (see Contact link below) with
the contents of your config file and information about your proxy and firewall settings.
Where can I find the schema information for various tables, functions
and procedures similar to the SkyServer Schema Browser?
To get the schema for different tables in a given context a la the SkyServer Schema
Browser, go to the MyDB page and from the dropdown menu
at the top left of the page, select the context that you want the schema information
for (default is your MyDB context). Then you will see the tables for that context
listed on the left instead of your MyDB tables. Click on one of the tables to see
its schema information. To view schema for views, functions and procedures, click
on the appropriate link below the context menu. To go back to your MyDB schema page,
select MyDB again from the context menu.
How can I cross-identify (find matching objects in SDSS) for my
list of sources for which I have RA,decs?
If your list of RA,decs is of small to moderate size (up to a few hundred objects),
you might be better off using the
SkyServer CrossID page to correlate your positions to SDSS objects. For
longer lists, you will need to use the neighbors search options in CasJobs. The
first step is to import your list of positions using the
CasJobs Import page. If you don't already have a column in your imported
table to identify each object, you may want to add an enumerator column
as instructed above. After you've done that, the easiest option is to go
to your MyDB page and click on the table you just imported. If there are columns
named "ra" and "dec" in a table, a "Neighbors" button appears in the menu at the
top of the page. You can click on this button and select the options you desire
to do a neighbors search within the specified radius for each object in your list.
If this is not good enough for your purposes (e.g., if you want to specify a different
search radius for each object in your list), then you will have to roll your own
neighbors search as described in the Advanced Queries help page
under Nearest Neighbor Search.