Использование точек с запятой в выражениях Oracle SQL - PullRequest
3 голосов
/ 14 мая 2009

Отказ от ответственности: я только начал работу над новым контрактом, который заставил меня перейти с MSSQL на Oracle. Так что я новичок в Oracle и, вероятно, привел много плохих практик MSSQL. Хорошо, к вопросу ...

Согласно ответу в этой теме , точки с запятой плохие и их следует избегать. Я понял это воочию, потратив несколько часов, пытаясь понять, почему мои запросы выполнялись так ужасно медленно в SQL Developer. После удаления точки с запятой в конце сложного запроса он завершился за считанные секунды (по сравнению с тем, что я отказался от него через несколько минут, как было до удаления точки с запятой). Такое поведение поразило меня, и поиск в Google не сильно повлиял на то, когда и почему я должен или не должен использовать точки с запятой в своих операторах SQL. Может кто-нибудь прояснить это с кратким объяснением?

И если у вас есть ссылки на онлайн-ресурсы для плохих разработчиков, переходящих с MSSQL на Oracle, я был бы очень признателен!

Спасибо!

Ответы [ 4 ]

15 голосов
/ 14 мая 2009

Это не точка с запятой. Повторный запуск того же запроса означал, что строки уже были кэшированы, поэтому вы получили их намного быстрее.

4 голосов
/ 14 мая 2009

Я прохожу более 5 лет опыта работы с MS SQL и более 4 лет разработки Oracle. Я знаю, что вы будете ненавидеть многие функции Oracle, особенно в SQL;) но будьте спокойны. Oracle - действительно мощная СУБД. Хотя с многих точек зрения я предпочитаю MSSQL, а не Oracle, но это уже другая тема.

Что касается вашего вопроса:

Точка с запятой - это просто разделитель операторов.

Разработчик SQL использует Java и OCI, поэтому у вас могут быть разные проблемы (я просто предполагаю, что что-то может быть не так).

Если вы чувствуете, что что-то работает неправильно, я советую вам получить этот запрос и запустить его в SQLPLUS вместо Visual Query Tools, потому что это даст вам правильное чувство.

Удачи в разработке Oracle.

Посетите Часто задаваемые вопросы по SQL * Plus .

2 голосов
/ 14 мая 2009

Вот книга, которая очень поможет SQL в двух словах от Кевина и Даниэля Клайна

Он имеет синтаксис как для Oracle, так и для сервера SQl, поэтому вы можете легко увидеть, как преобразовать вещи в синтаксис Oracle, если вы знаете, как писать в t-SQL.

1 голос
/ 14 мая 2009

Работая с Oracle в качестве разработчика из PowerBuilder, Java, .NET и TOAD более 10 лет, это звучит странно.

Я бы предложил использовать план объяснения, чтобы найти, что происходит, и убедиться, что база данных исправна, с правильной статистикой и индексами.

Из более ранних версий Oracle я помню, что использование оптимизации на основе правил могло привести к такого рода проблемам с производительностью, но в последнее время оптимизация на основе затрат и статистика оставили такие проблемы в прошлом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...